寫一個 Markdown 預覽腳本

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

產生的網頁如下圖所示:


  1. 除 Markdown 標記語言之外,還有許多其他標記語言可令人在寫作時不需要考慮排版印刷工作,例如我一直都很喜歡的 TeX(LaTeX、ConTeXt 等)。

  2. 真正的 yue,要比文中的複雜一些,以後可能會更復雜,但圖難於其易,爲大於其細。

  3. 我是 firefox 瀏覽器的老用戶。其他瀏覽器用戶,可根據實際情況寫這個腳本。此外,我用的系統是 Linux,每次重啓系統時,/tmp 目錄裏的文件會自動被清除。其他系統用戶也需要根據自己實際情況去構造臨時的 HTML 文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章