Markdown
https://gyazo.com/1864ad9a7b980f4fdd15290e86d2216a
將語法轉換成對應的HTML標籤
本質上仍和撰寫網頁相差不大
同於網頁文件有明確規範的各種語意標籤
大標到小標、文章段落、有序無序列表、勾選格、圖片、連結、強調、刪除線、引文、程式碼區塊、表格、分隔線…
有明確的撰寫層級邏輯
提昇原始文本的可讀性
Markdown只有常用標籤,未覆蓋所有HTML標籤
使用上需有一定程度對於網頁文件的理解
一些算繪處理和網頁機制有關
例如純文字預設會轉換成段落標籤<p>
paragraph
會和慣習的社群平台排版體驗有落差
例如換行必須加上<br />
break line
例如有序列表
不會據實反應輸入的數字
1. 3. 2.會算繪為1. 2. 3.
會和無序列表一同計算
- - - 1. 2. 3.會算繪為- - - 4. 5. 6.
可直接於裡頭撰寫HTML
有好有壞
例如表格使用HTML撰寫會更好理解
例如圖片預設難以進一步調整
偏向捨棄層級思考
沒有嚴謹標準
導致大量方言
同一套寫法可能在各平台出現不同結果
為什麼使用**的強調轉換會失敗?
歷史
以John Gruber為中心,為了將平文轉換為HTML的文法和Perl腳本 未定義細節導致的各家獨自實作和缺乏相容性
比較22種Parser,出現15種輸出
2004年後,John Gruber停止維護
2012年,Jeff Atwood提出Markdown標準化
2014年,由於許可因素而定名為CommonMark
試圖維持Markdown的原始思想與相容性的同時,減少其中的曖昧性
強調
*和_包住的內容會轉換為<em>標籤
**和__包住的內容會轉換為<strong>標籤
原始的Markdown.pl處理
容許巢狀的設計會導致關閉位置不固定的狀況
left/right-flanking
日文不使用空白區分,因此會導致轉換失敗
對策
在強調符號的前後使用非CJK標點符號
使用CJK友善的Parser/Renderer/擴充功能
Comrak/remark-cjk-friendly
直接撰寫HTML
其他問題
Soft line break
ruby