--- title: 寫作風格指南 slug: MDN/Guidelines/Writing_style_guide tags: - 文件 - 指南 - 指導方針 - MDN Web 文件 - MDN 風格指南 - 風格指南 - 寫作風格指南 - Documentation - Guide - Guidelines - MDN - MDN Meta - MDN Web Docs - MDN style guide - Style guide - Writing style guide ---
{{MDNSidebar}}

為了讓文件更加組織化、標準化而易於閱讀,MDN 風格指南描述了文件的組織方式、拼寫、格式等問題。這些規則只是指導方針而非強制規定。與格式相比,我們對內容更感興趣,因此不用覺得在開始貢獻之前有被迫要學習這些指南的壓力。若之後有其他支援者修改了你的內容以便讓它符合這些指南,你也不需要因此而感到沮喪或驚訝。

在語言方面,本指南主要適用於英語文件,其它語言可擁有(且歡迎建立)自己的風格指南。它們會以當地語系團隊頁面的子頁面發佈。

基礎

維持整份文件的一致性是各大文件發表風格指南的基礎。以下段落將會列出這些基礎概念來協助您。

頁面標題

頁面標題會展示於搜索結果,也可用於在頂部的麵包屑導覽列中的層次結構以建構頁面。網頁標題(既顯示在頁面頂端及搜尋結果)也會因頁面的「路徑」而異,這些路徑就是組成頁面網址的一部分—— 「<locale>/docs/」 。

標題與頁首的大小寫

頁面標題與章節標題應使用一般句子的大小寫形式(只對句首字母和專有名詞大寫),而非新聞式標題:

有些舊的頁面編寫於本樣式規則定版之前。若你願意,可隨時更新它們。我們會逐漸完善它們。

選擇標題與路徑

頁面路徑應保持簡短。當建立新的層級時,該層級的路徑應只由一兩個單詞組成。

至於頁面標題,只要在合理範圍內,長度可以隨意,不過它應當是描述性的。

建立新的子目錄

當你需要加入關於某個主題或主題範圍的文章時,一般可以建立一個目錄頁面,然後為這些文章分別加入子頁面。目錄頁面應當以一兩段對該主題或技術的描述開頭,接著提供一個子頁面的清單,並對每個子頁面做簡短的描述。你可以用一些我們建立的巨集來將頁面自動插入到該清單中。

JavaScript 指南為例,它的結構如下:

請儘量避免將你的文章放在頂層,不然會拖慢網站的下載速度,降低網站導覽和搜索的效率。

一般文章內容指導方針

任何文件的篇幅都應該適可而止。如果你侃侃而談或提供過多的細節,文章會變得乏味且鮮少被閱讀。文章內容涵蓋恰當的篇幅有許多好處,其中就包含:讓讀者找到他們真正想要的資訊、提供搜尋引擎足夠好的素材以便用於分析及評價文章的內容。

本文只針對前者(提供讀者需要的資訊)進行說明。對於如何確保文章恰當的被搜尋引擎分類及評價,請移步到 MDN 如何針對 SEO 進行寫作

寫作的目標是要讓讀者取得所有必要資訊的同時又不會陷入太多的細節中。以下是這個主題的相關建議。

考量讀者想要的

要知道這些僅僅只是建議。某些建議並非適用於任何場景。時時刻刻考量讀者想要什麼。譬如,有關網路技術的進階文章就不需要講述太多有關網路基礎的觀念。

提供有用的概述

如果文章可能涵蓋讀者有興趣的內容,確保文章的概述——開頭的段落或是第一個標題後的段落——能夠提供讀者足夠的資訊。

對於指南或是教學類型的內容,概述應該要能夠涵蓋讀者須知的主題且他們應先具備的知識;若有需要。同時也必須提到哪些已經被文件化或經討論的技術或 API 並以連結的方式提供相關的資訊,也別忘了給予文章內容中有幫助的提示。

範例:過於簡短!

這個範例就過於簡短。它缺乏太多資訊了,譬如,所謂的「 stroke 」 文字到底是什麼意思、文字又會被繪製在哪裡等。

CanvasRenderingContext2D.strokeText() draws a string.

範例:過於冗長!

更新後的概述反而有過於冗長的問題。涵蓋了太多的資訊了,而且用來描述其他方法以及屬性的篇幅過於龐大。

反之,概述應該著重在 strokeText() 方法本身,在輔以適當的參考指南作為其他細節的補充

When called, the Canvas 2D API method CanvasRenderingContext2D.strokeText() strokes the characters in the specified string beginning at the coordinates specified, using the current pen color. In the terminology of computer graphics, "stroking" text means to draw the outlines of the glyphs in the string without filling in the contents of each character with color.

The text is drawn using the context's current font as specified in the context's {{domxref("CanvasRenderingContext2D.font", "font")}} property.

The placement of the text relative to the specified coordinates are determined by the context's textAlign, textBaseline, and direction properties. textAlign controls the placement of the string relative to the X coordinate specified; if the value is "center", then the string is drawn starting at x - (stringWidth / 2), placing the specified X-coordinate in the middle of the string. If the value is "left", the string is drawn starting at the specified value of x. And if textAlign is "right", the text is drawn such that it ends at the specified X-coordinate.

(etc etc etc...)

You can, optionally, provide a fourth parameter that lets you specify a maximum width for the string, in pixels. If you provide this parameter, the text is compressed horizontally or scaled (or otherwise adjusted) to fit inside a space that wide when being drawn.

You can call the fillText() method to draw a string's characters as filled with color instead of only drawing the outlines of the characters.

範例:恰到好處!

下列是一個針對 strokeText() 方法更好的概述。

The {{domxref("CanvasRenderingContext2D")}} method strokeText(), part of the Canvas 2D API, strokes—that is, draws the outlines of—the characters of a specified string, anchored at the position indicated by the given X and Y coordinates. The text is drawn using the context's current {{domxref("CanvasRenderingContext2D.font", "font")}}, and is justified and aligned according to the {{domxref("CanvasRenderingContext2D.textAlign", "textAlign")}}, {{domxref("CanvasRenderingContext2D.textBaseline", "textBaseline")}}, and {{domxref("CanvasRenderingContext2D.direction", "direction")}} properties.

For more details and further examples, see {{SectionOnPage("/zh-TW/docs/Learn/JavaScript/Client-side_web_APIs/Drawing_graphics", "Text")}} in the Learning Area as well as our main article on the subject, Drawing text.

涵蓋所有相關的範例

使用範例來進一步闡明每一個使用到的參數以及任何可能出現的少數邊際案例是非常重要的。使用範例來展示常見問題以及可能引發問題的情況及他們的解決方式。

一般而言會期待多數的頁面都可以包含一到多個範例,最好有超過一個範例。

每一個範例須有前導的文字用於說明該範例所為何事以及讀者在閱讀及試驗該範例前的須知事項。

程式碼範例

每一段程式碼都應具有其如何運作的說明。大型段落的程式碼應切割成更小的部分以便於進行個別的描述。

每一段程式碼之後的文字應解釋所有相關資訊並控制好描述細節的程度:

當加入實際範例時,所有位於範例區域內的 {{HTMLElement("pre")}} 區塊會在執行範例前串聯起來,這便於讓你把 HTML 、 CSS 、 JavaScript 分開來處理,並讓它們擁有自己的描述、標題等。這使得程式碼的建檔變得更強大且更彈性。

過於簡短的文章很難被找到

如果文章的篇幅過於簡短,那可能搜尋引擎無法對其合理的索引(甚至根本無法索引)。根據經驗,文章的本體應最少有 250-300 字的篇幅。不用特別對文章內容充數,把這個原則當作最低的目標要求就足夠了。

標題

當開啟新的章節段落務必要加上標題。標題的層級以遞減的方式排序: {{HTMLElement("h2")}} 再來是 {{HTMLElement("h3")}} 再來是 {{HTMLElement("h4")}} ,不要跳過任何一個層級。

因為 H1 已經被保留作為頁面的標題使用,因此 H2 是章節段落可使用的最高層級標題。如果使用到超過三或四個等級的標題,請考慮把文章重新劃分成數個篇幅更短的文章並提供一個目錄頁面。

標題的為與不為