如何維護 Debian 網站
一般信息
資源需求
如果您想參與我們的網站工作,請準備在您的磁碟上至少存儲 740 MB 的數據。這反映了原始碼存檔的當前大小。如果您(意外地)重新構建所有頁面,您將需要至少三倍的空間。
這些以 `#' 開頭的行是什麼?
在 WML 中,以 `#' 開頭的行是註釋。這些比普通的 HTML 註釋更受歡迎,因為它們不會出現在最終頁面中。
請閱讀關於使用 WML 的頁面以獲取有關 WML 的更多信息。
編輯者禮儀
我可以修改這個頁面嗎?
這取決於情況。如果您看到一個小錯誤,比如拼寫錯誤,就直接修復它。
如果您注意到某些信息缺失,也可以隨時修復它。
如果您覺得某些內容很糟糕需要重寫,請在 debian-www 上提出來進行討論。我們可能會同意您的觀點。
如果您注意到模板中有問題(即 webwml/english/template/debian 目錄中的文件),請在提交之前仔細考慮更改,因為對模板的更改往往會導致網站的大部分內容重新構建。
添加新目錄時,也要添加 Makefile!
向 git 添加新目錄時應該小心。如果當前目錄在 ../Makefile 中列出,那麼您必須在其中創建一個 Makefile — 否則 make 會給出錯誤消息。
使用清晰簡單的英語
由於 Debian 網頁由非英語母語者閱讀並被翻譯成其他語言,最好用清晰簡單的英語寫作,避免使用俚語、表情符號和晦澀的習語。
如果您確實使用了其中任何一個,請在文件中添加註釋解釋其含義。
如有任何疑問,或為了校對您的建議,請聯繫英語本地化團隊。
查看 README 文件
某些目錄包含 README 文件來幫助您理解該目錄是如何組織的。這些文件應該提供在該區域工作時所需的任何特殊信息。
將內容更改與格式更改分開
總是為內容更改和格式更改制作單獨的補丁或提交。當它們結合在一起時,翻譯者很難找到差異。如果您對這種混合更改運行 git diff -u,您可以看到這種混亂。
通常,避免隨機的格式更改。使頁面的舊部分符合 XHTML/XML 標準不應該與其他更改在同一次提交中完成。(當然,新內容可以並且應該從一開始就正確完成。)
如果可能,也要更新翻譯
某些更改獨立於 WML 文件中使用的語言,比如對 URL 或嵌入式 Perl 代碼的更改。修復拼寫錯誤也屬於同一類別,因為翻譯者在翻譯時通常會忽略它們。 對於這種與語言無關的更改,您可以在所有翻譯文件中進行相同的更改,而無需實際瞭解其他語言,並且可以安全地增加翻譯檢查頭部中的版本。
翻譯者自己完成同樣的工作並不困難,而且對於說英語的編輯者來說,擁有一個完整的檢出來操作可能會很不方便。但是,我們仍然鼓勵人們這樣做,以避免為了一個人可以快速完成的事情而打擾二十幾個人。
此外,為了使這種更改更容易應用,您可以使用來自 webwml git 模塊頂級目錄的
smart_change.pl 命令稿。
鏈接
這個鏈接看起來不對。我應該更改它嗎?
由於網路伺服器的設置方式(使用內容協商),您不應該需要更改任何內部鏈接。實際上我們建議您不要這樣做。如果您覺得鏈接不正確,請在更改之前寫信給 debian-www。
修復鏈接
如果您注意到指向外部網站的鏈接導致重定向(301、302、<meta> 重定向或顯示此頁面已移動。
的頁面),請告知 debian-www。
如果您發現損壞的鏈接(404、403 或頁面不是鏈接所說的內容),請修復它並告知 debian-www,以便翻譯者知道。更好的是,修復所有其他翻譯中的鏈接,如果可能的話更新翻譯檢查頭部。
文本與數據的分離
這些 foo.def 和 foo.data 文件是什麼?
為了使翻譯保持最新更容易,我們將某些頁面的通用部分(數據)與文本部分(文本)分開。翻譯者只需要複製和翻譯其中的文本部分,通用部分將自動添加。
一個例子可能有助於理解這一點。生成 CD/vendors 中的供應商列表頁面需要幾個文件:
index.wml:- 供應商頁面頂部的文本在此文件中。 應將此文件的翻譯副本放置在每個語言目錄中。
vendors.CD.def:- 這包含每個供應商條目所需的所有文本片段。翻譯透過
<language>/po/vendors.xy.po添加。 vendors.CD:- 此文件包含獨立於語言的實際供應商條目,因此翻譯者不需要修改此文件。
當 cdvendors@debian.org 背後的人員添加新供應商時,他們將其添加到 debiancd.db,將其轉換為 WML 格式作為 vendors.CD(使用 getvendors.pl),
然後讓 WML 和 makefile 發揮作用。所有翻譯都使用現有的翻譯文本但帶有新的供應商數據重新構建。(免費的更新翻譯!)
添加新頁面
向 Debian 添加新頁面相當容易。獲得正確頁眉和頁腳的所有工作都是使用 WML 完成的。您需要做的就是在新文件的頂部包含如下行:
#use wml::debian::template title="頁面標題"
後跟正文。除非頁面使用為該部分專門創建的特殊模板(例如新聞或安全條目),否則所有頁面都應使用 wml::debian::template 模板文件。
我們擁有的模板允許您定義某些變量,這些變量將影響創建的頁面。這應該避免必須為每種情況創建不同的模板,並允許更容易實現改進。當前可用的變量及其用途是:
- BARETITLE="true"
- 刪除通常添加到所有 <title> 標籤前面的"Debian --"部分。
- NOHEADER="true"
- 從頁面中刪除初始標題。當然,可以在正文中包含自定義標題。
- NOMIRRORS="true"
- 從頁面中刪除映射站台下拉列表。通常不建議使用,除了少數幾個頁面。
- NOHOMELINK="true"
- 刪除返回到主 Debian 頁面的鏈接,該鏈接通常添加到頁面底部。
- NOLANGUAGES="true"
- 刪除指向其他語言版本的鏈接,這些鏈接通常添加到頁面底部。
- GEN_TIME="true"
- 將結果文件上的日期設置為生成文件的時間戳,而不是源文件的時間戳。
- NOCOPYRIGHT="true"
- 刪除頁面底部的版權聲明。
請注意,您可以使用任何字符串作為這些變量的值,true
、yes
、foo
,都沒關係。
此用法的一個例子是在有自己標題的頁面中。ports/arm/index.wml 使用:
#use wml::debian::template title="ARM 移植" NOHEADER="yes"
如果您想要做某些使用現有模板無法完成的事情,首先考慮擴展其中一個。如果無法以向後兼容的方式擴展,請嘗試使新模板成為現有模板的超集, 以便頁面可以在下一次主要升級時轉換到它(希望永遠不超過每 6 個月一次)。
如果您正在創建由命令稿生成或散文很少的頁面,請考慮使用 <gettext> 標籤來簡化保持翻譯最新的任務。
包含其他文件
如果您想將頁面的某些部分分離到一個獨立的文件中(然後由您的主文件包含),如果您的文件包含應該翻譯的內容,請使用擴展名 .src,
因為這樣您包含的文件會像任何普通的 .wml 文件一樣被跟蹤更改。如果您使用任何其他擴展名,如 .inc,翻譯者將不會注意到您的更新,
不同的語言可能會提供不同的內容。
添加新目錄
注意:不要創建名為 install 的目錄。這會混淆 make,該目錄中的頁面將不會自動更新。
下面是向網站添加新目錄的註釋示例。
mkdir foo git add foo cd foo cp ../intro/Makefile . git add Makefile
編輯父目錄中的 Makefile,並將您剛創建的目錄添加到 SUBS 變量中。這將在運行 make 時將目錄添加到構建中。
最後,使用以下命令將剛才所做的所有更改提交到存儲庫
git commit Makefile foo
