Markdown 是一套輕量化標記語言,適用於撰寫對排版不甚講究的的文檔。文檔的寫作者掌握 Markdown 標記的用法後,便可以使用任何一種純文本編輯器撰寫文檔。這個過程不同於使用某種字處理或排版軟件撰寫文檔。
如果暫時讓時光倒退到計算機還沒有參與排版印刷工作的時代,用 Markdown 標記寫文章,得到的結果相當於文章的底稿,需要將其交給工人排版印刷,方能得到適合提供他人閱讀的文章。如果使用某種字處理軟件寫文章,相當於寫文章的人自己同時也肩負了排版印刷工作。雖說殊途同歸,但是顯然寫底稿的時候不必在意排版印刷的事情,可以令人更能在寫作上集中注意力 [1]。
現在是計算機參與排版印刷工作的時代,誰負責將使用 Markdown 底稿變成適合提供他人閱讀的文章呢?通常是由一個程序,將 Markdown 底稿轉化成 HTML 文檔——網頁。我們上網,看到的一切,都是網頁。
我在用 Emacs 編輯 Markdown 文檔時,用 C-c C-c p
命令便可將 Markdown 文檔轉化爲 HTML 文檔,並自動打開網頁瀏覽器將後者呈現出來,這個過程可稱爲 Markdown 文檔預覽。我用的能夠將 Markdown 文檔轉化爲 HTML 文檔的程序是 pandoc,我的 Emacs 調用了這個程序。
Emacs 是如何調用的 pandoc,我不怎麼關心。我考慮的問題是,用 bash 語言寫一個腳本,調用 pandoc,將 Markdown 文檔轉化爲臨時的 HTML 文件,方便我隨時查看 Markdown 文檔對應的排版結果。
這個腳本的名字叫 yue,內容很簡單 [2]:
#!/bin/bash
NAME=${1%.md}
TMP_HTML=/tmp/${NAME}.html
pandoc -s --mathjax --metadata title="$NAME" $1 -o $TMP_HTML
firefox $TMP_HTML
用法也很簡單。假設用 yue 處理 foo.md,只需執行
$ yue foo.md
便可調用 firefox 打開 /tmp/foo.html 文件 [3]。
yue 在調用 pandoc 時,考慮了對 Markdown 文檔中的 LaTeX 數學公式的支持。
我執行
$ yue 用無.md
產生的網頁如下圖所示: