www.debian.org 是如何被製作出來的
外觀
Debian 網站是位於 www-master.debian.org 上的 /org/www.debian.org/www
目錄的文件和目錄的集合。頁面的大部分內容都是靜態 HTML 文件。它們不包含 CGI 或 PHP 命令稿之類的動態元素,因為網站需要能被映射站台。
Debian 網站使用網站元語言(Website Meta Language,WML)生成 HTML 頁面,包括頁眉和頁腳、標題、目錄等等。儘管 .wml
文件乍看起來像是一個 HTML 文件,但是 HTML 只是 .wml 中可以使用的其中一種額外信息。您也可以在頁面中加入 Perl 代碼,然後就可以做幾乎任何事情。
在 WML 在一個文件上運行其各種篩選器後,得到的最終產品就是真正的 HTML 文件。請注意,雖然 WML 能檢查(有時能自動糾正)您的 HTML 代碼的最基礎的正確性,您還是應該安裝 weblint 和/或 tidy 之類的工具作為最基本的語法和編碼風格檢查工具。
原始碼
我們使用 Git 存儲 Debian 網站的原始碼。這一版本控制系統讓我們可以跟蹤所有的更改,我們可以看到誰更改了什麼、什麼時候更改的,以及為什麼更改。Git 提供了一個在多個作者並行編輯源文件時加以控制的安全的方法,由於 Debian 網站團隊規模很大,所以這一點對我們來說至關重要。
以下是關於原始碼如何組織的一些背景信息:
- Git 存儲庫中最頂層的目錄(
webwml
)包含以網站所使用的語言命名的目錄、兩個 Makefile 文件以及幾個命令稿。翻譯目錄名稱應使用英文小寫字母(例如使用german
而不是Deutsch
)。 Makefile.common
文件尤其重要,因為它包含一些通用規則,其它 Makefile 文件透過包含該文件來應用這些規則。- 每種語言所在的子目錄都包含 Makefile、各種
.wml
源文件和更多的子目錄。所有文件名和目錄名都遵循特定的模式,以便令鏈接適用於所有語言。有些目錄還包含一個.wmlrc
配置文件,其中包含額外的命令和配置信息。 webwml/english/template
目錄包含特殊的 WML 模板文件。它們能被所有其它文件透過#use
指令來引用。
請注意:為了使對模板的更改傳播到使用它們的文件,所以其它文件在 Makefile 中依賴它們。絕大多數文件都使用 template
模板,所以它們的開頭都有如下一行:
#use wml::debian::template
當然,這條規則也有例外。
命令稿
用到的命令稿主要用 shell 或 Perl 語言編寫。其中一些能獨立工作,還有一些已集成到 WML 源文件中。
- webmaster-team/cron:
這一 Git 存儲庫包含了更新 Debian 網站需要的所有命令稿,例如重新構建
www-master
的命令稿的原始碼。 - webmaster-team/packages:
這一 Git 存儲庫包含了重新構建
packages.debian.org
的命令稿的原始碼。
生成網站
WML、模板和 shell 或 Perl 命令稿是您生成 Debian 網站需要的全部原料:
- 大部分內容是透過 WML 生成的(來自此 Git 存儲庫)。
- 文件是從對應的 Debian 套件透過 DocBook XML(
ddp
Git 存儲庫)或 cron 命令稿生成的。 - 網站的部分內容是使用其他來源的命令稿生成的,例如,通信論壇訂閱/取消訂閱頁面。
每天運行六次自動更新(從 Git 存儲庫和其他來源到 webtree)。此外,我們還定期對整個網站運行以下檢查:
網站最新的構建日誌可以在 https://www-master.debian.org/build-logs/ 找到。
如果您想參與網站開發,開始時請不要簡單地編輯 www/
目錄中的文件或添加新項目。請首先與 webmaster 團隊聯繫。
怎樣幫忙
我們鼓勵任何人幫助改善 Debian 網站。如果您認為我們的頁面上缺少一些關於 Debian 的有價值的信息,請聯繫我們,我們一定會加入該信息。此外,也請查看上面提到的構建日誌,看看您是否有修復其中問題的建議。
我們也需要可以幫助設計網頁(圖像和佈局等)的人。如果您熟悉英語,我們希望您能對我們的頁面進行校對並向我們報告其中的錯誤。如果您使用其他語言,您可能想幫助我們翻譯現有的頁面,或者修復已翻譯的頁面的問題。不論何種情況,都請查看翻譯協調員列表,然後聯繫負責人。請參閱翻譯頁面以獲取更多信息。
怎樣幫不上忙……(FAQ)
[問] 我想給 Debian 網站添加一個華麗的功能,可以嗎?
[答] 不行。我們希望 www.debian.org 儘可能易於訪問,因此
- 不要使用瀏覽器特定的
擴展
(譯註:指特定瀏覽器在 Web 標準之外額外支持的渲染特性), - 不要僅依靠圖像。圖像有時會被用來更好的解釋某一項內容,但 www.debian.org 上的信息必須保證能被諸如 lynx 等純文本網頁瀏覽器訪問。
[問] 我想提出一個好主意。 您可以在 www.debian.org 的 HTTP 伺服器中啟用 foo 或者 bar 嗎?
[答] 不行。我們希望管理員可以輕鬆地映射站台 www.debian.org,所以請不要使用特殊的 HTTPD 功能。不,即使是 SSI(Server Side Includes)也不行。內容協商已作為例外進行處理,因為它是提供多種語言服務的唯一的一種可靠方法。