基於 Markdown 的中文文檔排版規範

2021-02-07 物聯網學前班

本篇文章先介紹 Markdown 的背景信息,然後著重介紹 Markdown 中文文檔的排版規範,不介紹 Markdown 的入門使用。

0 前言

相信閱讀本文的讀者一定有被 Markdown 靈活的寫作風格搞懵過,不知道怎麼寫更優雅、更規範,那麼本文就是來幫您梳理 Markdown 寫作過程中常見的一些問題,然後給出一個建議的應用規範。

通過閱讀本文,相信你一定可以基於 Markdown 寫出更加優雅的中文文檔。

1 關於 Markdown

Markdown 是由 John Gruber 於 2004 年創建的一種文本標記語言,目的是讓人們使用「直觀的、便於閱讀的純文本格式」書寫文檔。

與類似於 HTML 標記語言用於展示網頁不同,Markdown 被設計用來 專注於文本寫作;與 word 不同,Markdown 只有輸入文本字符,沒有複雜的格式控制,Markdown 僅通過數個文本標記符來實現簡單的格式控制,讓寫作回歸寫作。

2 Markdown 語法規範

Markdown 設計之初沒有明確的語法規範,隨著 Markdown 被更多的人使用,這種不規範直接導致了多種 Markdown 語法的變體,Markdown 解析器也變得混亂,無法統一。

開源平臺 GitHub 做為 Markdown 文檔的直接支持者已經無法忍受這種情況,2017 年 GitHub 發布了 Markdown GFM(GitHub Flavored Markdown) 標準規範,並且修改了 GitHub 的 Markdown 解析器以規範用戶行為。

GitHub 在 GFM 規範中詳細闡述了為什麼需要規範 Markdown 語法,有興趣的讀者可以詳細閱讀。

重點

推薦使用 GitHub GFM 規範!

3 中文文檔排版規範 3.1 語法規範建議

推薦使用 GitHub GFM 規範! 其他規範不做介紹。

3.2 標題格式建議

GitHub GFM 規範支持 ATX 標題Setext 標題 規範,推薦使用 ATX 標題 規範,最大支持 6 級標題。

ATX 標題 標題規範示例:

# 一級標題

## 二級標題

### 三級標題

3.3 空行3.4 空格

重中之重,希望嚴格對待。

「有研究顯示,打字的時候不喜歡在中文和英文之間加空格的人,感情路都走得很辛苦,有七成的比例會在 34 歲的時候跟自己不愛的人結婚,而其餘三成的人最後只能把遺產留給自己的貓。畢竟愛情跟書寫都需要適時地留白。

與大家共勉之。」——vinta/paranoid-auto-spacing

3.4.1 中英文之間需要增加空格

正確:

在 LeanCloud 上,數據存儲是圍繞 AVObject 進行的。

錯誤:

在LeanCloud上,數據存儲是圍繞AVObject進行的。

在 LeanCloud上,數據存儲是圍繞AVObject 進行的。

完整的正確用法:

在 LeanCloud 上,數據存儲是圍繞 AVObject 進行的。每個 AVObject 都包含了與 JSON 兼容的 key-value 對應的數據。數據是 schema-free 的,你不需要在每個 AVObject 上提前指定存在哪些鍵,只要直接設定對應的 key-value 即可。

例外:「豆瓣FM」等產品名詞,按照官方所定義的格式書寫。

3.4.2 中文與數字之間需要增加空格

正確:

今天出去買菜花了 5000 元。

錯誤:

今天出去買菜花了 5000元。

今天出去買菜花了5000元。

3.4.3 數字與單位之間需要增加空格

正確:

我家的光纖入屋寬帶有 10 Gbps,SSD 一共有 20 TB

錯誤:

我家的光纖入屋寬帶有 10Gbps,SSD 一共有 20TB

例外:度 / 百分比與數字之間不需要增加空格:

正確:

今天是 233° 的高溫。

新 MacBook Pro 有 15% 的 CPU 性能提升。

錯誤:

今天是 233 ° 的高溫。

新 MacBook Pro 有 15 % 的 CPU 性能提升。

3.4.4 全形標點與其他字符之間不加空格

正確:

剛剛買了一部 iPhone,好開心!

錯誤:

剛剛買了一部 iPhone ,好開心!

剛剛買了一部 iPhone, 好開心!

4 標點符號 4.1 不重複使用標點符號

正確:

德國隊竟然戰勝了巴西隊!

她竟然對你說「喵」?!

錯誤:

德國隊竟然戰勝了巴西隊!!

德國隊竟然戰勝了巴西隊!!!!!!!!

她竟然對你說「喵」??!!

她竟然對你說「喵」?!?!??!!

5 全形和半角

不明白什麼是全形(全形)與半角(半形)符號?請查看維基百科詞條『全形和半形』。

5.1 使用全形中文標點

正確:

嗨!你知道嘛?今天前臺的小妹跟我說「喵」了哎!

核磁共振成像(NMRI)是什麼原理都不知道?JFGI!

錯誤:

嗨! 你知道嘛? 今天前臺的小妹跟我說 "喵" 了哎!

嗨!你知道嘛?今天前臺的小妹跟我說"喵"了哎!

核磁共振成像 (NMRI) 是什麼原理都不知道? JFGI!

核磁共振成像(NMRI)是什麼原理都不知道?JFGI!

5.2 數字使用半角字符

正確:

這個蛋糕只賣 1000 元。

錯誤:

這個蛋糕只賣 1000 元。

例外:在設計稿、宣傳海報中如出現極少量數字的情形時,為方便文字對齊,是可以使用全形數字的。

5.3 遇到完整的英文整句、特殊名詞,其內容使用半角標點

正確:

賈伯斯那句話是怎麼說的?「Stay hungry, stay foolish.」

推薦你閱讀《Hackers & Painters: Big Ideas from the Computer Age》,非常的有趣。

錯誤:

賈伯斯那句話是怎麼說的?「Stay hungry,stay foolish。」

推薦你閱讀《Hackers&Painters:Big Ideas from the Computer Age》,非常的有趣。

6 名詞 6.1 專有名詞使用正確的大小寫

大小寫相關用法原屬於英文書寫範疇,不屬於本 wiki 討論內容,在這裡只對部分易錯用法進行簡述。

正確:

使用 GitHub 登錄

我們的客戶有 GitHub、Foursquare、Microsoft Corporation、Google、Facebook, Inc.。

錯誤:

使用 github 登錄

使用 GITHUB 登錄

使用 Github 登錄

使用 gitHub 登錄

使用 gイんĤЦ8 登錄

我們的客戶有 github、foursquare、microsoft corporation、google、facebook, inc.。

我們的客戶有 GITHUB、FOURSQUARE、MICROSOFT CORPORATION、GOOGLE、FACEBOOK, INC.。

我們的客戶有 Github、FourSquare、MicroSoft Corporation、Google、FaceBook, Inc.。

我們的客戶有 gitHub、fourSquare、microSoft Corporation、google、faceBook, Inc.。

我們的客戶有 gイんĤЦ8、キouЯƧquムгє、๓เςг๏ร๏Ŧt ς๏гק๏гคtเ๏ภn、900913、ƒ4ᄃëв๏๏к, IПᄃ.。

注意:當網頁中需要配合整體視覺風格而出現全部大寫/小寫的情形,HTML 中請使用標淮的大小寫規範進行書寫;並通過 text-transform: uppercase;/text-transform: lowercase; 對表現形式進行定義。

6.2 不要使用不地道的縮寫

正確:

我們需要一位熟悉 JavaScript、HTML5,至少理解一種框架(如 Backbone.js、AngularJS、React 等)的前端開發者。

錯誤:

我們需要一位熟悉 Js、h5,至少理解一種框架(如 backbone、angular、RJS 等)的 FED。

7 有爭議的點

以下用法略帶有個人色彩,即:無論是否遵循下述規則,從語法的角度來講都是 正確 的。

7.1 連結之間增加空格

用法:

請 提交一個 issue 並分配給相關同事。

訪問我們網站的最新動態,請 點擊這裡 進行訂閱!

對比用法:

請提交一個 issue並分配給相關同事。

訪問我們網站的最新動態,請點擊這裡進行訂閱!

7.2 加粗、斜體、高亮文本前後加空格

建議在 加粗斜體高亮文本 前後加空格,否則某種情況會出現格式解析失敗。

建議用法:

修復了一個 內存洩露 問題,該問題由 someone 在 版本 v0.1.1 中引入。

測試文本,這是測試。

不建議用法:

修復了一個內存洩露問題,該問題由someone在版本 v0.1.1中引入。

測試文本 ,這是測試。

解析失敗的情況:

這是一個解析失敗的情況,當引用了一個函數void main(void)的情況下,如果沒有在加粗文本前後增加空格,會導致格式解析失敗。這種情況在 GitHub 中存在

7.3 列表縮進

建議使用 4 個空格進行文本縮進,尤其是遇到有序列表或者無序列表的時候。另外,在使用無序列表或者有序列表的時候,建議在上下級之間空一行,同級之間可以不空行。

示例:

- 一級

    - 二級

- 一級

    - 二級
    - 二級

- 一級

    - 二級

        - 三級

    - 二級

        - 三級
        - 三級

7.4 `/` 的使用

建議 / 字符前後留空格,充當路徑描述符的時候除外。

7.5 簡體中文使用直角引號

用法:

「老師,『有條不紊』的『紊』是什麼意思?」

對比用法:

「老師,『有條不紊』的『紊』是什麼意思?」

8 誰在這樣做? 網站文案UGCApple 中國是N/AApple 香港是N/AApple 臺灣是N/AMicrosoft 中國是N/AMicrosoft 香港是N/AMicrosoft 臺灣是N/ALeanCloud是N/AV2EX是是Apple4us是N/ARuby China是標題達成PHPHub是標題達成少數派是N/A9 工具推薦

Markdown 實時編輯實時渲染工具推薦以下兩個:

10 參考

中文文案排版指北

中文文案排版指北-修改版

Typora 完全使用詳解

引用

1. Markdown 發起者 John Gruber:https://en.wikipedia.org/wiki/John_Gruber
2. GitHub GFM 規範:https://github.github.com/gfm/
3. ATX 標題規範:https://github.github.com/gfm/#atx-headings
4. Setext 標題規範:https://github.github.com/gfm/#setext-heading
5. 關於空格調研說法的引用:https://github.com/vinta/pangu.js
6. 維基百科全形與半角:https://zh.wikipedia.org/wiki/%E5%85%A8%E5%BD%A2%E5%92%8C%E5%8D%8A%E5%BD%A2
7. 中文文案排版指北:https://github.com/sparanoid/chinese-copywriting-guidelines
8. 中文文案排版指北-修改版:https://github.com/sparanoid/chinese-copywriting-guidelines
9. Typora 完全使用詳解:https://sspai.com/post/54912

我結合 中文文案排版指北 一文和自己的應用經驗匯總輸出了 中文文案排版指北-修改版,本文是基於該修改版本。


由於微信排版原因,Markdown 展示效果不是非常理想,請閱讀原文查看


相關焦點

  • 一種用markdown寫PPT的方法,再也不用費勁排版了
    前言本文原始碼位於:https://github.com/pzqu/tools今天看jeremyxu 的技術點滴,發現分享了一個 markdown 寫 PPT 的插件,驚為天人,先來看看官方效果圖。參考marp 官方文檔可以很快學會用法,但是用的時候去翻比較麻煩,我提煉了常用的語法,最後做了一個 PPT 練手,才算是學會了,現在分享出來以便以後翻閱
  • Markdown 開啟你更高效工作的第一步!
    Markdown 書寫規範及排版指南儘管 Markdown 語法很簡單,但是想要寫出一份美觀、易維護的 Markdown 文檔,還是要注意其寫作規範。,同時也不能用加粗或強調等代替標題,標題應該儘可能簡短,方便引用文字排版指南文字排版是一門藝術,好的排版就是好的設計,尤其對於中文文案排版而言,有不少地方需要注意。
  • 讓文檔回歸本質,為什麼應該用Markdown
    首先說明下什麼是Markdown,維基百科的定義是:markdown是一種輕量的純文本標記語言。純文本對應的是富文本或者叫做格式化的文本,典型的代表是微軟的word文件。自從電腦發明以來,電腦的主要用途之一就是處理各式各樣的文檔,於是湧現出各式各樣的文字處理工具,也就是文檔編輯器。
  • LaTeX 搞定學術論文排版王者 (上)
    雖然編輯起來較為麻煩,但是最終成品相對於word排版來說,的確整潔規範太多。  對於致力於「研究學術」的同學,latex是一項必需的技能,尤其對於理工科同學來說。  對於文科同學,進一步學術研究也需要接觸latex,但是也推薦markdown,畢竟更輕量更簡單易學。markdown教程見歷史記錄,或在小菜單自查。  這系列文章整理了我自己學習latex的一些心得,希望幫助大家快速上手latex。
  • 用R語言+ bookdown實現Markdown 撰寫學術論文並實現Latex排版
    概述R語言的bookdown包可以實現直接用markdown撰寫,並最終實現latex排版。把生成的latex代碼套用到期刊模板就可以實現latex撰寫。bookdownplus的用法首先安裝R、Rstudio、TexLive,然後在Rstudio中安裝bookdownplus包,具體的安裝方法可以查看bookdownplus中文教程 ^bookdownloadplus中文教程和 bookdownplus官方文檔 ^bookdownplus官方文檔安裝代碼1install.packages("bookdownplus
  • 排版的事情交給LaTeX就好,讓你專注於寫作(附安裝包)
    LaTeX是一種基於ΤΕΧ的排版系統,由美國計算機學家萊斯利·蘭伯特(Leslie Lamport)在20世紀80年代初期開發。LaTeX能夠很好地輔助科技工作者對文檔,包括論文書籍等進行排版。經過LaTex排版之後的文檔,結構優美,能夠很好地滿足各大期刊、出版社的要求;利用這種格式,即使使用者沒有排版和程序設計的知識也可以充分發揮由TeX所提供的強大功能,能在幾天,甚至幾小時內生成很多具有書籍質量的印刷品。LaTeX對於生成複雜表格和數學公式,這一點也是表現得尤為突出。
  • 值得紀念的日子,中文網際網路終於有排版規範 | 愛範兒
    ——由 W3C 撰寫的《中文排版規範(草稿)》,是中文網際網路世界對中文網頁排版的權威參考標準。這份《規範》著重解決中文網絡排版的那些不夠標準的問題?可以參考 W3C 的《在 Web 和數字出版中優化文字排版》文檔:分別文字和詞語的邊界;斷行;斷字;對齊和定位;原始碼格式的空格和縮進;字母轉換;字母空格;段落特性;首字母樣式;雙向文字;基準線;豎排文字;豎排文字和橫排文字混排;Ruby 標音;Line Decoration;著重標記;字體;計數器,列表,等等;筆記,腳註,等等;頁碼,頁眉,等等;頁面布局;其它 「文化-規範」 問題。
  • 如何用Markdown輕鬆排版知乎專欄文章?
    痛點從前,寫作時的排版是件辛苦事。不論你把排版環節放在寫作中還是寫作後,總會在心裡清楚意識到,還有這麼一個繁重而無趣的工作在等著你。後來,有了Markdown,排版就變成了一件令人愉悅的事情了。你只需要用非常簡單的記號說明一些特殊位置,例如標題、列表、腳註和圖片等,然後應用不同的樣式,你寫好的文字就能自動轉化為各種漂亮的排版效果了。
  • 中文書寫規範與排版指南
    一、書寫規範談起書寫規範,似乎我們既熟悉又陌生。從小到大,十幾載寒窗,我們一直都在寫作文,但我們似乎也缺失了最根本的一點——書寫規範。最常見的就是「 全形與半角」:我們在使用輸入法的時候,中文輸入法下會自動切換為全形標點符號,而英文輸入狀態下會切換為半角標點符號。
  • 打造一款基於monaco-editor及markdown-it的Markdown編輯器(上)
    前言本文的 Markdown 編輯器主要是 Monaco editor + markdown-it 實現 markdown 編輯以及預覽,目前實現了:文章複製功能;Markdown 轉 html 基本樣式;自定義 table 插件以及 h 標籤插件
  • FlarumOne 基於 Flarum 輕論壇的中文增強發行版
    FlarumOne 基於 Flarum 輕論壇的中文增強發行版 FlarumOne 基於 Flarum 輕論壇的中文增強發行版Flarum
  • 中文markdown 格式校驗 lint-md v0.1.0,支持 --fix 參數
    用於檢查中文 markdown 編寫格式規範的命令行工具,基於 AST 開發,且方便集成 ci;同時提供
  • 高效排版,Markdown原來還能這麼用
    文字編輯早就成了我們生活中不可缺少的一部分,交課程論文要排版,列印考試資料要排版,寫篇新媒體文章更要排版。       於是,萬能的人類開發出了Markdown,因為太神奇,以至於至今沒有合適中文譯名的工具。
  • 將Swagger2文檔導出為HTML或markdown等格式離線閱讀
    將Swagger2文檔導出為HTML或markdown等格式離線閱讀網上有很多《使用swagger2構建API文檔》的文章,swagger2文檔是一個在線文檔,需要使用HTTP訪問。但是在我們日常使用swagger接口文檔的時候,有的時候需要接口文檔離線訪問,如將文檔導出為html、markdown格式。
  • 記 webpack 中文文檔的一次優化
    遇到的問題打開 webpack 中文文檔,隨便找一篇文檔介紹。比如直接訪問概念 -> 入口,會發現頁面空白。和社區的小夥伴討論了幾種解決方案:將英文文檔作為中文文檔的 submodules,然後做對應關係採用 React 文檔的形式,在標題後添加後綴(採用)分別說下幾種思路:方案 1 的話,實現難度較高,並且對中英文文檔要求較高,務必做到一一對應
  • RStudio|用R Markdown生成你的R語言數據分析報告
    數據挖掘與機器學習,R與Python,理論與實踐並行。個人公眾號:數據科學家養成記 (微信ID:louwill12)R Markadown 作為一款通過R語言創建動態文檔的寫作排版工具,為數據科學提供了現成的寫作框架。通過 R Markdown 不僅可以運行和保存R代碼,還可以生成高質量的數據分析報告並以HTML、PDF或者word的形式分享。
  • 終於下決心處理了將markdown編寫內容複製到百家號排版亂的問題
    然後就某些代碼片段的排版看的心碎,自己都沒心思往下看,更別說讀者;由於其他第三方的限制,不能直接導流到博客,所以排版...然後趕緊編輯和在頭條裡自己評論雖然知道於事無補,但頭條後臺通過還有人收藏這就很尷尬了,我自己也感覺是時候下決心處理了第三方文章排版的問題了為什麼是今天
  • 回顧《中文排版需求》
    《中文排版需求》的過去與進程   2009 年,《日文排版需求》(「日本語組版処理の要件」, 簡稱 JLREQ)正式發表,如同日本標準化專家小林龍生先生在其著作《EPUB 戰記》中所述,在日本當地並未產生迴響與漣漪。但這是由 W3C 國際化工作小組(i18n WG)所發表的第一份語言排版文檔,實際上是一步重要的定石。
  • 重磅| PaddlePaddle中文文檔強勢來襲!
    今年11月份,PaddlePaddle的用戶們在中文社區論壇以及社群上發出召喚:PaddlePaddle官方是否能做個PaddlePaddle文檔的中文版?這個呼聲在PaddlePaddle團隊內引起廣泛關注,研發團隊馬上在 GitHub 上展開了一個 PaddlePaddle中文文檔項目。
  • 使用逐浪CMS做網站如何引用Markdown編輯器
    這些衍生版本要麼基於工具,如Pandoc;要麼基於網站,如GitHub和Wikipedia,在語法上基本兼容,但在一些語法和渲染效果上有改動。MarkDown擁有幾十種特性功能:1、實現渲染效果2、實時同步預覽3、工具欄語法輔助4、更好的中文支持和優化5、獨立的編輯模式