開源文檔領域出現的五項發展趨勢
譯文【51CTO.com快譯】我個人有著多年開源文檔相關經驗,而過去十年中此類創作與出版的方式發生了巨大變革。其中某些趨勢似乎是種循環,例如評議標記的再度流行。而有些則屬于新興趨勢,例如盡可能拉近文檔與代碼間的距離,很多人將其稱為文檔即代碼。下面,我將總結這一領域中出現的五種發展趨勢。
1. Git
在最初開始參與GNOME項目的文檔相關工作時,我們使用DocBook進行文檔編寫并將其同代碼一道存儲在CVS庫內。如今,大多數GNOME文檔開始由Mallard編寫并存儲在Git庫中。盡管格式與工具有所變化,但將內容存儲在版本控制方案內的作法仍然延續了下來。
有些朋友可能會奇怪,為什么這種長久以來的習慣仍然會被視為趨勢?這主要是因為Git的出現。Git是一套分布式版本控制系統,大約誕生于十年前。當然,目前仍有人在使用分散式版本控制系統,但Git的主流地位仍然不可動搖。正是由于Git的普及,開發、分段與分支型生產方式為大多數人所接受,而這也是近年來值得關注的重要趨勢。
Git當然不是惟一的分布式版本控制系統選項,我們也有其它方案可以嘗試。不過Git仍然占據著大部分比重,這很大程度上利益于Git托管站點的流行。
這一趨勢已經引導了整個軟件文檔領域的潮流。過去,人們無法通過網絡驅動器存儲自己的資源或者被迫使用專有型管理系統,但現在Git已經徹底改變了整個軟件行業的文檔處理方式——而且這是一種可喜的改變。
2. 輕量化語言
在文檔源格式方面,我們總是擁有多種選項。語義XML格式、SGML格式、TeX方言以及troff方言等等。另外,還有面向文字處理、頁面布局以及協助創造的其它源格式選項。一部分輕量化標記語言在設計中甚至專門進行了簡化,旨在優化文本編輯器中的輸入方式。
輕量化標記語言的興起有著多種原因。其通常更易于編寫,而簡單正是每個人都樂于看到的效果。由于大多數輕量化語言面向行,因此其能夠在版本控制系統中良好起效。其也能夠有效降低新晉貢獻者的入門門檻,當然大家應當謹慎變更源格式,否則很多貢獻者可能因為無法適應而退出。
輕量化標記語言也有著自己的短板。能夠與之協作的工具往往比較有限,且其通常無法提供編寫其它工具所需要的數據模型。其亦往往無法提供充足的語義信息。以XML格式為例,其中包含大量用于翻譯、驗證、鏈接檢查、狀態報告以及測試與數據提取的工具,而這些工具目前在輕量化格式中并不普及。因此盡管輕量化格式能夠降低新晉貢獻者的上手難度,但總體來講仍然算是有得有失。
目前人氣最高的三種輕量化格式分別為Markdown、AsciiDoc以及reStructured Text。Markdown最為簡單,但其能夠提供絕大多數基礎文檔功能。另外,其還提供多種尚有兼容問題的選項,具體取決于您實際使用的處理工具。AsciiDoc擁有更多語義以及更多元素類型。其最初專注于打造DocBook的前端版本,但如今已經開始原生發展并支持多種輸出格式。reStructuredText來自Python社區,其發展速度極快并在不少托管站點中得到采用。
3. 靜態網站生成工具
五年之前,當時的趨勢是利用維基與博客平臺創建文檔站點。這類站點易于設置,并允許人們更為輕松地進行貢獻。一部分用戶甚至建立起自己的維基以進行匿名貢獻。然而如今,趨勢轉為利用版本控制系統保存源代碼,而后通過大量靜態HTML文件實現站點的構建與發布。
生成靜態站點并非什么新鮮事物。我的第一份工作就是為某家軟件公司開發內部工具,用以構建并發布包含無數頁文檔內容的靜態文件。不過目前靜態站點已經在各類規模的項目當中得到普遍采用,而具體原因分為以下幾點。
首先,現成的靜態站點生成工具越來越多。Middleman與Jekyll都能夠輕松實現維基或者博客的部署工作。除非大家有特殊需求,否則直接使用現成工具即可達成目標。
另一個原因在于,以靜態站點實現的源托管站點易于使用,且正有越來越多技術人員選擇這類方案。如果大家將全部源文件存儲在單一托管服務中,例如GitHub,那么任何擁有GitHub賬戶的用戶都可以通過網絡瀏覽器進行編輯并提交其作出的修改。
4. 持續集成
持續集成已經成為將以上趨勢進行維系的關鍵。大家可以利用簡單格式編寫自己的文檔,將其存儲在Git中并通過Git托管服務進行在線編輯,而后發布至站點當中。利用持續集成機制,大家甚至不需要人工進行發布處理。如果愿意,大家甚至能夠自動向master提交變更內容,并借此實現類似于維基的管理方式。
某些項目則比較保守,即只允許由生產部門進行發布。但即使是這種以branch為源頭的發布方式,持續集成仍然能夠顯著減少人為干預的必要性。大家也可以自動發布分段站點以實現分支開發。
當然,持續集成的作用絕不僅限于發布。各類項目皆可利用其自動進行文檔測試,或者根據狀態及覆蓋范圍生成報告。
5. 托管文檔服務
雖然利用持續集成實現文檔自動發布已經相當便利,但如今的眾多托管服務在此基礎上作出了進一步簡化。只需要將其傳遞至Git庫,即可自動完成構建、發布以及文檔托管。
不過免費文檔托管站點是否能夠實現盈利還有待觀察——畢竟運作這樣的站點需要投入成本及時間。如果站點無法保持一定的質量水平,人們會選擇將文檔托管于其它平臺。而如果您喜愛自己當前的托管方案,請考慮以捐款形式為其提供支持。
我認為托管文檔服務的趨勢將進一步持續。未來甚至有可能出現專門面向專有軟件的付費型文檔托管服務。過去十年來,開源項目已經引領了文檔技術的發展道路,相信其將在未來繼續發揮重要作用。
原文標題:5 trends in open source documentation 原文作者:Shaun McCance
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】