GNU 網站指南
我們的目標是將資訊傳達給人們。保持網站設計簡潔有助於實現這一目標。
目錄
請體諒所有存取我們網頁的人,並盡可能配合他們,包括使用純文字瀏覽器或舊瀏覽器的人,以及連線速度慢的人。我們希望避免網頁設計在某個瀏覽器的某個版本下看起來很棒,但在許多其他瀏覽器下卻很醜陋的情況。當然,如果您還沒有使用任何專有網頁瀏覽器,請不要安裝它們。
一般指南
- GNU 網站伺服器僅提供自由軟體。我們偏好僅使用自由軟體來準備 GNU 網站伺服器的頁面。
- GNU 網站僅列出並連結到自由軟體。軟體的原始碼和可執行檔必須可自由地再散布,並可由所有人及組織修改。如有疑問,請洽詢 <gnu@gnu.org>。
- GNU 網站優先考慮以 GNU 通用公共許可證或 GNU 寬鬆通用公共許可證涵蓋的軟體。
- 應盡量減少圖形的使用,以便頁面在慢速連線下也能快速載入。
- 以 GNU 計劃擁有的所有格式提供文件。例如,請參閱 GNU 自由文檔許可證。這讓使用者可以取得對他們最有用的格式的文件。
- 除了著作權和許可證聲明之外,所有頁面都應在每個頁面的底部包含 FSF(或負責方)的聯絡資訊以及錯誤報告的地址(一般頁面的網站管理員,但其他情況下為專案特定的地址)。在底部註明此資訊的原因是,使用者始終可以在每個頁面的相同位置找到此資訊。
- 在從另一個網站取得任何圖形或文字之前,請先徵求使用許可。這樣做很有禮貌。這對於我們避免侵犯著作權也是至關重要的。
- 在新增連結之前,請檢查其是否符合我們的連結標準。
- 除非明確要求列出,否則請勿列出個人的地址,包括 GNU 套件的維護者。大多數 GNU 維護者不希望收到大量額外的郵件,並且偏好從 GNU 錯誤報告郵寄列表接收錯誤報告等。
- 在具有日期條目的頁面(例如,/philosophy/latest-articles.html)上,較新的條目應排在前面(即,反向時間順序)。
- 頁面不應從 FSF 運行的伺服器以外的伺服器載入 CSS。
- 一般而言,不允許使用 JavaScript。此規則的例外情況需要由首席 GNUisance 逐案審查和批准。
著作權指南
- 每個頁面都應具有著作權聲明。請參閱下面提及的樣板文件。
- 每個頁面都應具有允許所有人散布它的聲明。如果您無法從作者那裡獲得此類許可,請在發布之前與網站管理員討論此問題。這適用於 CSS 以及 HTML。
- 通常,除非我們有權修改我們發布的版本,否則您不應發布非 FSF 著作權的頁面。如果您無法從作者那裡獲得此類許可,請在發布之前與 FSF 討論此問題。這適用於 CSS 以及 HTML。
- 如果最終我們決定發布我們無權修改的新頁面,請在著作權聲明之後的 HTML 註解中放置文字「發布於 20XX 年,未經 FSF 許可修改」。
- 我們頁面的使用者應始終在每個頁面的相同位置找到著作權資訊。如果頁面的著作權由其他人或實體所有,請使用其著作權聲明而不是 FSF 著作權聲明。使用 FSF 的其餘標準頁尾材料,除非有特定原因需要變更其中的某些內容。
- 所有說明如何執行某些操作的頁面,例如如何使用某些程式,都是文件。這包括
/software/
中描述特定程式的所有頁面。根據我們的原則,文件必須是自由的。因此,這些頁面必須帶有自由許可證。如果此類頁面沒有自由許可證,請向 <webmasters@gnu.org> 報告問題。 - 對於其他頁面,請使用與具有相似用途的其他頁面相同的許可證。
拼寫和標點符號
- 英文頁面應遵循標準美式拼寫、連字和標點符號慣例。
- 由於這些慣例並非總是十分具體,尤其是在連字和引號方面,因此 gnu.org 為了一致性而新增了自己的規則
- 術語「nonfree」優於「non-free」;同樣,「noncommercial」優於「non-commercial」。
- 在普通文字中,HTML 實體「
“
…”
」和「‘
…’
」優於直引號 ("..." 和 '...')。這不適用於腳本產生的文件。 - 在存在雙空格的地方,應保留句子間隔後的雙空格。它們使 Emacs 句子指令能夠執行正確的操作。
檔名
- 為了更輕鬆地同時編輯多個檔案,請嘗試為每個 HTML 檔案提供一個唯一且具描述性的名稱;特殊檔名
index.html
僅應用作符號連結,如下所述。 - 網站伺服器樹狀結構中的每個目錄都應具有一個名為
index.html
的符號連結,指向該目錄的頂層 HTML 檔案。使用.symlinks
檔案來處理此問題。 - 如果您將網頁翻譯成不同的語言,請將英文檔案命名為
article.html
,並將其翻譯命名為article.lang.html
—lang
應包含來自 ISO 639 的兩個字母語言代碼,並且可以選擇性地包含一個連字號,後跟 ISO 3166 中給出的兩個字母國家/地區代碼(小寫)。例如,not-ipr.html
的德語翻譯應命名為not-ipr.de.html
;巴西葡萄牙語翻譯應命名為not-ipr.pt-br.html
。
網址
- 手寫的、指向 www.gnu.org 上其他檔案的 URL 應為絕對路徑,從根頁面開始。也就是說,路徑應以
/
開頭(例如,/gnu/about-gnu.html
;而非https://gnu.dev.org.tw/gnu/about-gnu.html
,也非about-gnu.html
)。這使得從其他頁面複製和貼上連結更容易。此外,當訪客使用 HTTPS 時,像https://gnu.dev.org.tw/
這樣的連結將會出錯。 - 檢查連結的主機是否同時支援 HTTPS 和 HTTP,如果支援,則使用協定相對 URL(例如
//www.example.org
)。 - 從 Texinfo 來源自動產生的檔案集合包含具有相對檔名的連結。它們始終指向同一目錄中的另一個檔案。這些相對連結是可以容忍的。
- 請勿僅在 URL 中使用目錄名稱;始終包含特定的檔名。例如,使用
/gnu/gnu.html
,而不是僅使用/gnu/
。永遠不要在 URL 中使用index.html
。這兩者都是對使用者的體貼,因為瀏覽器會在連結被訪問後變更連結上的醒目提示。如果指向給定檔案的連結使用多個不同的 URL,則尚未明確引用的 URL 將不會醒目提示為已訪問。因此,使用者會進入他/她已經看過的頁面,這很煩人。此外,這也簡化了網站的維護,因為事物會四處移動。 - 連結到同一檔案中的錨點時,請務必完全省略檔名,並仔細檢查錨點是否實際有效。
- 移除錨點或
id
屬性時,請考慮其他人連結到您的頁面。 - 我們鼓勵 FTP 站點為每個套件使用一個目錄,並且每個目錄僅放置一個套件的檔案,以便使用者可以查看可以下載該套件的哪些版本和相關資訊(例如,
README
檔案、有關可用版本的資訊、文件、字型等)。此外,這表示 FTP 位置 URL 不需要在此網站和其他網站上變更,因為新版本會發佈到該目錄中。 以這種方式引用具有電子郵件地址的人
<a href="//www.stallman.org/">Richard Stallman</a> <a href="mailto:rms@gnu.org"><rms@gnu.org></a>
瀏覽器會以這種方式顯示
Richard Stallman <rms@gnu.org>
這對使用者來說比較不令人困惑,因為很清楚哪個是指向另一個網頁的連結,哪個是
mailto:
錨點,如果用戶端支援,它將彈出一個郵件表單供填寫和發送。此外,如果使用者儲存頁面的副本,他們將擁有電子郵件地址的副本,他們可以使用該副本而無需返回到網頁瀏覽器。如果該人沒有網頁,請保持名稱未錨定。- 當嵌入靜態資源(例如影片)時,這些資源與 www.gnu.org 頁面的其餘部分一起不在
www
CVS 儲存庫中,重要的是,用於嵌入資產的 URL 必須是 gnu.org 的子網域,以便 GNU IceCat 隨附的第三方請求封鎖器附加元件不會將其視為第三方資產,從而阻止載入。例如,當在 www.gnu.org 上嵌入來自 FSF 活動的影片時,請使用static.gnu.org
而不是static.fsf.org
。這兩個地址都已設定為指向同一台機器,因此可以互換使用。
HTML 指南
- GNU 網站伺服器上的 HTML 應嚴格符合 W3C 標準。
- 請嚴格遵循上述網頁標準。使用 (X)HTML 時,不要忽略 必要元素,例如
<html>
、<head>
、<title>
、<body>
等,並且始終包含適當的 DTD 或 Schema 參考。這可以安撫過於吹毛求疵的網頁瀏覽器。 - 請勿在文件頂部新增註解。網頁瀏覽器期望 doctype、XML 宣告或 Schema 位於頂部。註解會使它們感到困惑,並且經常導致它們錯誤地解譯您的標記。
- <head> 元素應包含以下行
<link rel="author" href="mailto:webmasters@gnu.org">
- 第一個標題標籤 <h[n]> 應在 <title> 標籤的開頭重複其文字。許多瀏覽器在歷史記錄和書籤列表等選單中使用 <title> 標籤,作為指向該頁面的連結。在 <title> 中重複主標題可確保當使用者點擊這些選單中的項目時,他們會獲得具有預期標題的頁面。請按數字順序正確使用標題:1、2 等。這些不是用於外觀,而是用於文件的組織。
- <title> 標籤應包含短語「GNU 計劃」和「自由軟體基金會」,以便在使用網頁搜尋引擎時可以找到頁面。預設是在結尾新增此內容:
- GNU 計劃 - 自由軟體基金會
。 - 縮寫/首字母縮略詞
- 永遠不要使用
<acronym>
:HTML 5 已棄用它,而改用<abbr>
。 - 除非有非常充分的理由,否則不要使用
<abbr>
。瀏覽器會以難看的方式呈現它。 - 當讀者可能不熟悉縮寫時,請在文件中第一次使用時給出其展開形式,如下所示:
<abbr title="展開的縮寫詞">縮寫詞</abbr>
或縮寫詞 (展開的縮寫詞)
。 - 在任何情況下,後續出現都應在沒有任何標記的情況下書寫:僅
縮寫詞
。 - 對於常見的首字母縮略詞,例如 GNU、FSF、BSD、RAM、HTML、DVD 等等,完全不需要標記。請自行判斷。
- 永遠不要使用
表格和選單
- 請使用表格來組織資料,而不是網頁的呈現方式。
- 大多數盲人使用的螢幕閱讀器軟體會從左到右閱讀文字,忽略您製作的任何表格。如果您使用表格,則應確保從左到右閱讀整個頁面不會使此類軟體感到困惑。請遵循 W3C 網頁可及性指南,以確保表格已正確標記以實現可及性。
- 有些人喜歡在使用圖形瀏覽器時將連結組織為位於主文字左側或右側的選單。這對於文字瀏覽器來說效果不佳,因為它們會使選單顯示在頁面的頂部或底部。如果您有一個超過 30 行的選單,那麼很可能查看該頁面的使用者永遠不會費心閱讀文字,因為它會太靠下。您應該努力將此類選單保持在 20 行以下,以便在使用文字瀏覽器查看時,文章的開頭在第一頁上是可見的。一條或兩條水平線的選單欄也可能達到您的目的。「跳到主要文字」連結是另一種選擇。
使用我們的頁面範本
- 為了幫助人們遵循上述指南,為 GNU 網站的主要部分和軟體專案提供了頁面範本(或「樣板文件」)。對於 www.gnu.org 中的新頁面,強制使用它,並且強烈建議用於軟體頁面。請不要從現有頁面開始建立新頁面;而是使用樣板文件的原始來源,並遵循其中的說明。
- XHTML 範本頁面必須遵循 XHTML-1.0 指南。
- 我們的伺服器端包含宣告 UTF-8 為字元編碼,因此使用任何其他編碼都會產生問題。
樣式
範本頁面的樣式
/layout.css
提供了桌面和智慧型手機的通用樣式;它涵蓋了我們的大多數用例。- 印表機使用
/print.css
。請注意,頁首、導覽列和頁尾(著作權和許可證除外)是不可列印的。 - 除了
/layout.css
之外,某些頁面還具有專門的樣式表:GNU 藝術部分的/graphics/graphics.css
,以及惡意軟體和教育部分的/side-menu.css
。 - 如果特定頁面需要一些特殊樣式,則應將其新增到頁面本身中的 <style> 元素中,介於包含
header.html
和banner.html
的 SSI 指令之間。如果樣式適用於單個元素,則通常應將其新增為屬性。 - 如果您在 HTML 中指定任何顏色屬性,則應指定該標籤允許的所有顏色屬性。這是因為某些瀏覽器允許使用者指定顏色屬性的預設值,並且使用者的選擇可能會與您的選擇衝突,因為您的選擇會覆蓋使用者的選擇。在最糟糕的情況下,前景和背景可能會最終相同。請為此使用樣式表,而不是已棄用的 HTML 3.2 (HTML 4 Transitional) 標記。
其他樣式表
- 歷史頁面(大多數情況下是未維護的翻譯)引用
/gnu.css
,而/gnu.css
又載入/mini.css
(Yahoo User Interface 重設和基本樣式表,版本 2),因為這些頁面通常是非常基本、簡潔的頁面,幾乎沒有或沒有格式。 - 軟體手冊有專用的樣式表。主要的樣式表是
/style.css
;- gnulib.css,它匯入
/style.css
並新增了一些定義;gendocs.sh
使用它來重新產生 Texinfo 手冊。
- 翻譯人員維護樣式表 (
/style.lang.css
),這些樣式表根據他們自己的需求修改 layout.css。RTL 語言(阿拉伯語、波斯語和希伯來語)使用/style.rtl.css
。
圖形的使用
- 應盡量減少圖形的使用,以便頁面在慢速連線下也能快速載入,尤其是動畫。
- 我們不在頁面上使用背景圖片,因為它們會使文字更難以閱讀。
- 過去,GIF 存在專利問題。但是,現在 IBM 和 Unisys 專利(以及全球範圍內與 LZW 壓縮相關的其他專利)已過期,基於 87a 或 89a 標準的 GIF 是可以接受的。請注意可能包含非標準專利技術的專有應用程式(我們偏好您在為我們的網站創作時使用自由軟體應用程式)。一般而言,PNG 或 JPEG 格式仍然是安全的,並且從技術角度來看可能更好。有關舊 GIF 問題的詳細資訊,請參閱 https://gnu.dev.org.tw/philosophy/gif.html。也允許使用其他格式,儘管 JPEG 是網頁瀏覽器最廣泛認可的格式(避免使用 JPEG 2000,並小心 PNG alpha 通道;前者未獲得廣泛支援,後者未獲得某些舊瀏覽器的完全支援)。
- 在從另一個網站取得圖片之前,請先徵求使用許可。
- 始終為內嵌圖片提供文字替代方案,以確保可由搜尋引擎索引和可及性。例如
我們新增了不換行空格 ( ) 和方括號,以將描述性文字與相鄰文字分開,並幫助使用者意識到這是一個圖片的替代文字。使用不換行空格而不是普通空格的目的是確保它們找到進入 PO4A/Gettext 工具提取的可翻譯字串的路徑。<img src="/graphics/*.jpg" alt=" [描述性文字] ">
- 確保圖片以其原始大小顯示時(使用瀏覽器的預設字型大小)看起來不會太大或太小。
在 style 屬性中調整圖片寬度或高度,使用可縮放單位,例如
em
或%
;例如<img src="/graphics/*.jpg" alt=" [描述性文字] " style="width: 10em; height: auto;" />
這樣,如果讀者增加或減小字型大小,頁面看起來也會相同。
- 如果您要將一個小的浮動圖片新增到使用
layout.css
的頁面(範本頁面的樣式表),您可能需要使用imgright
或imgleft
類別(在樣式表的 IMAGES 區段中定義)。這將確保如果頁面翻譯成 RTL 語言,則浮動方向會反轉。 - 如果您新增的圖片寬度為 12em 或更大,並且頁面是範本頁面,您可能會發現使用
layout.css
的 IMAGES 區段中定義的其中一個響應式pict
類別很方便(如果沒有預定義的類別符合您的需求,您可以在 style 屬性中調整寬度);例如
請注意,<div class="pict wide" style="width: 25em"><img src="/graphics/*.jpg" alt=" [描述性文字] " /></div>
div
容器是必要的,因為某些瀏覽器(例如,NetSurf)不知道如何將max-width
應用於圖片。 將整個網站中顯示的所有圖片連結到相關頁面,通常位於
/graphics/
中。這可以使用類似於此的程式碼完成,該程式碼對應於左側的圖片<p class="imgleft"> <a href="/graphics/agnuhead.html"> <img src="/graphics/gnu-head-sm.jpg" alt=" [Image of the Head of a GNU] " style="width: 8em" /></a> </p>
這將允許使用者快速前往與他們感興趣的圖片相關的頁面。
附錄 1 - 連結政策
維護網頁最複雜的方面之一是遵循連結指南;但是,這也是這項工作非常關鍵的方面。
我們努力確保我們宣傳的所有頁面(我們網站上提供連結的所有頁面)都對自由軟體運動友好。有些頁面顯然不符合此類標準;如果網站抨擊自由軟體基金會和/或 GNU 計劃,或者與自由軟體和周邊問題沒有明顯關係,則不應建立連結。但是,除此之外,還有一些標準用於判斷從我們的頁面提供指向某個頁面的連結是否合適。它們在下面按一般重要性降序排列。
- 連結的上下文是什麼?
-
連結在我們網站上的目的將在確定應根據其他標準對其進行多強烈的判斷方面發揮作用。託管 GNU 專案的頁面將受到最高標準的約束。關於其他自由軟體並給予高度宣傳的頁面(例如,包含在首頁的新聞提要中)是第二重要的。哲學頁面上的連結在談論專有軟體時可能會給予更多寬容;GNU/Linux 使用者群組頁面應幾乎始終調用系統 GNU/Linux,但在其他標準方面幾乎沒有檢查。在決定如何權衡這些政策的每個方面時,請始終牢記這一點。
- 該頁面是否宣傳專有軟體?
-
自由軟體運動提出的重點是,專有軟體會帶來道德困境:您不能同意此類非自由條款,並以您希望被對待的方式對待您周圍的人。當專有軟體得到宣傳時,人們會產生使用它是可以接受的印象,而我們正試圖說服他們不要這樣做。因此,我們避免提供此類免費廣告,無論是直接在我們的網站上還是間接地通過連結。
此標準的棘手之處在於「宣傳」點:提及專有軟體和為其進行銷售宣傳之間存在差異。實際上,GNU 計劃網站始終提及專有軟體,但從未給人留下使用它不會帶來道德問題的印象。
在確定對專有軟體的引用是宣傳它,還是僅僅提及它時,有兩件事要記住。首先,它提供有關軟體的多少資訊?其次,讀者可能從此頁面實際獲得多少資訊?
不同的頁面提供不同數量的關於專有軟體的資訊;它提供的越多,對我們來說造成的麻煩就越大。例如,某些頁面可能會連結到專有軟體程式的主要站點。其他頁面可能會詳細描述其功能。即使給出的產品名稱也很重要;「Windows」和「Microsoft Windows XP Home Edition」之間存在差異。
參考的主題也將在確定參考有多成問題方面發揮作用。如果該軟體已經非常流行,那麼對其進行基本提及不太可能對讀者來說是新聞。一些被認為「眾所周知」的專有軟體的範例是主要作業系統(Windows、Mac OS、Sun OS、HP-UX)和主要常用應用程式,例如 Office、Internet Explorer、Chrome、Photoshop、Acrobat Reader 和 Flash。
GNU 軟體專案頁面感受到了此政策的全部力量。僅當 GNU 軟體提供對專有軟體的支援時,或者將其與眾所周知的專有軟體的功能進行比較時,才應提及專有軟體。例如,以下文字(以及不多其他內容)是可以接受的
w3 是 GNU Emacs 的網頁瀏覽器,類似於 Internet Explorer。它可以運行在 GNU Emacs 運行的所有平台上,包括 GNU/Linux、專有 Unix 系統和 Windows。
出現在其他區域(例如,推薦或哲學頁面),以及指向使用者群組或第三方組織的連結,可能會更詳細地討論此類軟體,但仍應避免連結和其他鼓勵「了解更多」的方法。
- 該頁面如何比較自由軟體和開放原始碼?
-
幾乎所有在我們網站上有連結的頁面都應至少平等地對待自由軟體和開放原始碼。未能做到這一點(無論是遺漏自由軟體還是暗示開放原始碼更優越)通常是不可接受的。GNU 軟體專案頁面應很少提及開放原始碼。以下是一個委婉的範例
XYZ 是 GNU 計劃的一部分,並且是自由/自由軟體(有時稱為開放原始碼軟體)。
此規則的任何例外情況都應從上下文中顯而易見。例如,使用者群組頁面或 links.html 中列出的組織頁面可能會更詳細地討論開放原始碼;我們在這些頁面上聲明:「FSF 不對其他網站的內容或其資訊的最新程度負責。」
- 該頁面如何對待 GNU 計劃?
-
我們連結到的頁面應妥善對待 GNU 計劃。在這方面需要注意的主要事項是頁面是否調用系統 GNU/Linux 或僅僅「Linux」。GNU 軟體專案和使用者群組頁面幾乎從不應,如果有的話,未能做到這一點。同樣,其他頁面的例外情況應從上下文中顯而易見。
也就是說,頁面的某些部分不應根據這些標準進行考量。例如,假設我們要連結到自由軟體新聞網站上的頁面。在確定其是否符合我們的連結指南時,不會考慮附加到文章的任何廣告或讀者評論,因為它們被理解為其個別作者的意見。同樣,在使用者群組或第三方組織頁面上,論壇和 wiki 頁面的內容不應在這些方面佔有份量。
最後,某些網站被理解為始終對大多數這些指南有例外。這些網站通常與重要但與自由軟體運動有些周邊的問題有關。我們曾多次連結到電子前哨基金會的網站,即使他們鼓勵使用 Flash,僅談論開放原始碼軟體,並且不提倡使用者重新散布和變更軟體的自由。人們普遍理解,由於這些頁面主要不是關於自由軟體,因此這些政策對它們沒有完全的約束力。
作為最後的解釋(來自 RMS):即使對於從 www.gnu.org 建立連結,我們也不要求人們調用系統 GNU/Linux 或使用術語「自由軟體」而不是「開放原始碼」。但是,我們要求他們不得宣傳任何非自由軟體。
如果這一切看起來很複雜,那是因為,很不幸地,它確實如此。別擔心;訣竅在於時間和經驗的累積。在學習掌握可接受與不可接受的標準時,您可能會誤判一些頁面;請隨時向更有經驗的網站管理員,或像是首席網站管理員或 RMS 等主管尋求第二意見。新的例外情況總是會出現;對此可能性保持開放態度,並準備好妥善處理它們。
- 即使使用者的瀏覽器拒絕執行 JavaScript 程式碼,這個頁面也能運作嗎?
-
如果頁面需要非自由、非trivial 的 JavaScript,並且在停用 JavaScript 的情況下會發生嚴重錯誤,則不應建立連結。同樣地,如果頁面嵌入了 Flash,而 Flash 扮演重要的角色,以至於如果影片無法播放,使用者會錯失重要的內容,則也不應建立連結。
然而,在某些情況下,我們仍然可以使用替代方案來繞過 JavaScript 的要求,藉此連結到這類頁面和資源。
一種可能性是使用 GotHub 的實例—一個無需 JavaScript 即可運作的 GitHub 免費軟體前端—來取代連結到 GitHub 上託管的頁面和資源,GitHub 這個網站需要執行非自由的 JavaScript 才能如預期般使用。
目前(2024 年 3 月),GotHub 並未積極維護,並且缺少一些功能。例如,它沒有提供瀏覽儲存庫或在不訪問 GitHub 網站的情況下下載原始碼的方法,也沒有提供 git clone URL。儘管如此,GotHub 對於某些用途仍然很有幫助。例如,它非常適合連結到個別檔案。
* 軟體套件。對於軟體專案來說,一個有用的檔案是 README 檔案;它包含套件的描述,這通常是用戶在嘗試取得儲存庫之前最想看到的第一件事。我們在 www.gnu.org 中多次應用了這個解決方案;例如,我們將這個連結替換為:
https://github.com/pbatard/rufus
替換為這個連結:
https://gothub.projectsegfau.lt/pbatard/rufus
.另一個解決方案是直接連結到 GitHub 上已標記提交的 tarball。這種方法的缺點是,它對於追蹤專案的長期發展不太有用。
* 圖形、文件、手冊。這些資源有時會託管在使用者頁面上,即使它們託管在 GitHub 網站的區域內,也不需要 JavaScript 就能完全使用。在這些情況下,可以連結到這些頁面。例如,我們將連結到
https://github.com/foocorp/gnu-fm/blob/main/clients/meego/librefm/src/librefm-logo.png
的連結替換為連結到
https://raw.githubusercontent.com/foocorp/gnu-fm/main/clients/meego/librefm/src/librefm-logo.png
.
以及我們連結到像是這樣的文檔:
https://raw.githubusercontent.com/scootergrisen/licenser/master/gpl-3.0.da.txt
.有時一個資源可能託管在多個可接受的地方。它可以是 GitHub 或其他地方的個人頁面,或是在一些不相關的網站上。在評估要選擇哪一個時,請考慮以下因素:文檔的狀態是什麼?是最終版本還是很可能很快就會被修改?URL 的穩定性是否可靠,還是很可能被移動?
例如,過去我們有一個手冊的案例,它在 other-free-books.html 中列出,網址為
.https://github.com/davidam/orgguide-es
當時,我們有三種可能性來替換那個不良連結
1. GotHub
https://gothub.projectsegfau.lt/raw/davidam/davidam.github.io/master/docu/orgguide.es.pdf
2. 作者在 GitHub 上的個人空間
https://raw.githubusercontent.com/davidam/davidam.github.io/master/docu/orgguide.es.pdf
3. 出版商/書店
https://traficantes.net/sites/default/files/pdfs/orgguide.es_.pdf
我們選擇了第三個,因為看起來手冊不太可能更新到新版本,而且 Traficantes de Sueños 是一家歷史悠久、知名的出版商。GitHub 上的 issue tracker 可以查看和瀏覽,而無需 JavaScript,但是積極參與需要一個帳戶,而建立帳戶不能在不執行非自由 JavaScript 的情況下完成。連結到已關閉的 issue 是可以的,就像我們對這個 issue 所做的那樣:
https://github.com/w3c/fingerprinting-guidance/issues/8
.
對於已關閉的 issue,另一種可能性是連結到 Wayback Machine 上的存檔頁面。最後,考慮與維護者和作者溝通以解釋問題的可能性。希望他們會將儲存庫移動到其他地方,或將材料發布到我們可以連結的地方。
附錄 2 - 使用 Web CVS 儲存庫
基本 CVS 指令
- 如需參考手冊,請執行 info cvs。
- 在初始 checkout 之前,設定環境變數
CVS_RSH=ssh
。 -
如果您擁有 www 的寫入權限,請使用您的 Savannah 登入資訊 checkout 主要的 www 儲存庫
cvs -z3 -d:ext:username@cvs.savannah.gnu.org:/web/www co www
您將獲得一個工作目錄
www
,其結構與我們主要的網站相同。 -
如果您沒有 www 的寫入權限,您仍然可以匿名 checkout www
cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/web/www co www
-
Checkout fooproject 的 web 儲存庫
cvs -z3 -d:ext:username@cvs.savannah.gnu.org:/web/fooproject \ co fooproject
您將獲得一個工作目錄
fooproject
,其結構與www/software/fooproject
子目錄相同。但是請注意,fooproject 和 www 儲存庫是獨立的。工作目錄可以位於您檔案系統中的任何位置。網站管理員,在將任何內容提交到軟體專案的 web 儲存庫之前,請先閱讀 官方 GNU 軟體的網頁。
-
新增檔案或目錄
cvs add foo
-
在編輯檔案之前更新
cvs update -P foo
-
檢查您要提交的變更
cvs diff -U2 foo
-
執行提交(如果檔案已在儲存庫中,則無需
cvs add
)cvs commit foo
這將開啟一個文字編輯器,您應該在其中輸入日誌訊息。它也會向您顯示要提交的所有檔案的列表。提交將在退出編輯器後發生。
或者
cvs commit -m "Log message" foo
此選項安全性較低,因為它不會向您顯示要提交的檔案列表。此外,日誌訊息中的一個小錯誤(省略訊息和檔案名稱之間的空格)可能會導致提交目錄中所有已修改的檔案,因為檔案名稱將不被視為參數,而是訊息的一部分。
撰寫良好的提交日誌訊息非常重要,它可以幫助專案成員和後代找到給定檔案中的特定變更,並理解您的變更原因。
- 在不過於冗長的情況下,日誌訊息應盡可能清楚地描述提交的性質。
良好:更新 XYZ 的連結。
不良:更新一個連結。 - 始終包含任何相關 RT 工單和/或郵件列表討論的參考。如果沒有此類參考,請提及授權變更的人員姓名。
- 對於日期,我們使用美式標記法(Sept. 27, 2023)或 ISO 8601 國際標準格式(2023-09-27)。
盡可能地,對多個檔案進行的、共享相同日誌訊息的變更應捆綁在一次提交中。不要將多個不相關的變更捆綁在一次提交中。
變更(除了 .symlinks 檔案 之外)應該在幾分鐘內在 www.gnu.org 上可見。
- 在不過於冗長的情況下,日誌訊息應盡可能清楚地描述提交的性質。
有關 CVS 的更多詳細資訊,例如還原到先前的版本,或查看特定變更的 diff
輸出,請參閱 CVS 文件。
符號連結
由於 CVS 無法直接處理符號連結,因此實施了一種單獨的機制,以允許網站管理員維護符號連結,如下所示。(實際上,符號連結不再在 www.gnu.org 上建立;而是使用 mod_rewrite 規則。但我們將繼續討論符號連結,因為這樣更容易理解。)
身為一個符號連結意味著,當符號連結跳轉到不同的目錄時,來自連結頁面的相對連結可能會斷裂。
名為 .symlinks
的特殊檔案,在提交到 CVS 樹時,會被解釋為建構符號連結的規範。來自 .symlinks 檔案的每個符號連結規範都會被遵守,也就是說,如果符號連結尚不存在,則會建立符號連結。如果在目錄中找到符號連結,但未在 .symlinks 檔案中列出,則會將其移除。
.symlinks 檔案遵守 ln -s
格式,如下所述
- 以井字號(“#”)開頭的行會被忽略。
- 不包含以空白分隔的兩個字串的行會被靜默忽略。
以下是一個 .symlinks 檔案的範例
# Make a link named l.html to a target t.html. # Strictly equivalent to ln -s t.html l.html: t.html l.html
在每一行中,第一個檔案名稱必須是現有檔案的相對路徑名稱。第二個檔案名稱不得包含任何斜線;它是要在目前目錄中建立的符號連結的名稱。例如,如果名為 dir.html
的頁面存在於 /dir
目錄中,並且 index.html
不存在,則 /dir/.symlinks
應包含類似這樣的行
dir.html index.html
ln -s
的類比僅解釋了部分情況。目前的方法實際上利用了 URL 重寫的靈活性。因此,.symlinks 檔案中的單個 HTML 條目定義了指向所有可能翻譯的連結,這些翻譯遵循我們的 命名慣例。這使得無法使用符號連結來重新導向到和從名稱看起來像翻譯的 HTML 檔案,也就是 page.ll.html
或 page.ll-cc.html
,其中 ll 和 cc 是兩個字母的代碼。當您需要此類重新導向時,請使用 htaccess 機制。
現在,.symlinks 的處理在 www.gnu.org 上透過 cron job 進行,該 cron job 每小時執行兩次。網站管理員無法存取它。
.htaccess 和重新導向
對於瀏覽器來說,前一節中的符號連結與實際檔案沒有區別。在某些情況下,您可能需要實際的重新導向。您可以在頂層控制檔案 .htaccess
中執行此操作,或者使用類似這樣的檔案作為要重新導向的檔案
<meta http-equiv="refresh" content="0; url=https://gnu.dev.org.tw/target">
伺服器端腳本
www.gnu.org 上使用的 腳本和軟體描述 可用。在編寫任何腳本之前,請先閱讀它,如果您擁有 www 的寫入權限,也請根據需要更新它。
系統管理員
GNU 的系統管理員會不時更換。請發送電子郵件給系統管理員列表 <sysadmin@gnu.org>,而不是個人,除非您有特定的理由這樣做。
實用資源
- gnu.org 之外
- 我們遵循 Best Viewed with Any Browser 運動的準則。
- 關於 web 及其技術規範的基本資訊可以在 The World Wide Web Consortium 找到。
- GNU web 伺服器遵循 w3.org Style Guide。
- 使用 WCAG 2.1 有助於確保廣泛身心障礙人士的可訪問性。
- 在 gnu.org 上
- GNU 網站指南(本頁面);
- www.gnu.org 上 網頁建立 的指南;
- 附錄 B 提示和技巧,以及 Texinfo 手冊 中的其他樣式提示;
- GNU 無障礙聲明;
- GNU 網站管理指南;
- 翻譯 GNU 網頁成其他語言的指南;
- 網站管理員提示,以簡化翻譯人員的工作;
- Savannah 文件,Savannah 是專為 GNU 專案設計的 SourceForge 複製品。
- 如何幫助 我們的 web 伺服器 和其他任務。