將 Asciidoc 轉成 Markdown 格式
pandoc asciidoc markdown -> asciidoctor -b docbook5 <yourfile>.ad > pandoc -f docbook -t markdown_strict <yourfile>.xml -o <yourfile>.md
Why
太多時候需要 markdown 格式,但你只寫了 asciidoc。
既不想從頭寫一遍也不想為兩者的差異逐一修改。這時候你需要 pandoc。
What
- AsciiDoc
-
AsciiDoc 是一種輕量級標記式語言。
- asciidoctor
-
asciidoctor 是以 Ruby 實現的 AsciiDoc 轉換工具。
- pandoc
-
pandoc 是以 Haskell 實現的通用文件轉換器。
How
查一下 pandoc 能做什麼?
使用 pandoc --list-input-formats 查詢 pandoc 支援輸入的格式。很遺憾,其中並不包括 asciidoc。
但幸好用 pandoc --list-output-formats 查詢 pandoc 支援輸出的格式中有 asciidoc。
這樣問題就解了一半。
再查一下 asciidoctor 能做什麼?
-b, --backend BACKEND set backend output format: [html5, xhtml5, docbook5, manpage] (default: html5)
支援的輸出跟 pandoc 輸入重合的有
-
docbook
-
html
挑上面其一作為中介格式,應就能達成任務。
考慮 docbook 比 html 對格式的定義更嚴謹些,能更好降低格式對應模糊的問題。
就先試試用 docbook 來當中介格式吧。
考慮有這樣一個轉換鍊 ad → docbook → md。
現在使用命令列來達成這個轉換鍊。
> asciidoctor -b docbook5 <yourfile>.ad
> pandoc -f docbook -t markdown_strict <yourfile>.xml -o <yourfile>.md
讓我們讓他更方便一點,將它寫成一個指令。
.profile
ad2md() {
filename=`echo $1 | sed -re 's/(^.*[^/])\.[^./]*$/\1/'`
asciidoctor -b docbook5 $1
pandoc -f docbook -t markdown_strict ${filename}.xml -o ${filename}.md
rm -rf ${filename}.xml
}
將上述放入 .profile 檔內,之後便能以 ad2md <yourfile> 來將 asciidoc 轉成 markdown。
增加 git 標籤
<<
>>
將文件 md 轉成 ad