將 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