要將markdown檔案轉換成html檔案,可以用discount或python-markdown軟體包提供的markdown工具。
$ sudo apt-get install discount
或
$ sudo apt-get install python-markdown
用discount提供的markdown工具轉換:
$ markdown -o Release-Notes.html Release-Notes.md
用python-markdown提供的markdown_py工具轉換:
$ markdown_py -o html4 Release-Notest.md > Release-Notes.html
如果要生成PDF,可以用python-pisa提供的xhtml2pdf轉換:
$ sudo apt-get install python-pisa
$ xhtml2pdf --html Release-Notes.html Release-Notes.pdf
也可以在文件目錄下放置一個Makefile來自動完成轉換過程:
# Makefile
MD = markdown
MDFLAGS = -T
H2P = xhtml2pdf
H2PFLAGS = --html
SOURCES := $(wildcard *.md)
OBJECTS := $(patsubst %.md, %.html, $(wildcard *.md))
OBJECTS_PDF := $(patsubst %.md, %.pdf, $(wildcard *.md))
all: build
build: html pdf
pdf: $(OBJECTS_PDF)
html: $(OBJECTS)
$(OBJECTS_PDF): %.pdf: %.html
$(H2P) $(H2PFLAGS) $< > $@
$(OBJECTS): %.html: %.md
$(MD) $(MDFLAGS) -o $@ $<
clean:
rm -f $(OBJECTS)
html輸出:
$ make html
pdf輸出:
$ make pdf
如果markdown的內容是中文,那麼轉換出來的html在瀏覽器中開啟就無法自動識別編碼,pdf更慘,直接是一堆亂碼。這時可以藉助markdown對html標記的支援,在markdown檔案中加入編碼資訊。例如我們要將markdown轉換為html檔案,可以在檔案的開頭加上meta標記,指明編碼格式:
$ sed -i '1i\<meta http-equiv="content-type" content="text/html; charset=UTF-8">' *.md
使用以上的方法,轉換出來的效果並不理想,所以嘗試使用pandoc去轉換,在Ubuntu上使用以下指令安裝:
$ sudo apt-get autoremove pandoc
$ sudo apt-get install cabal-install
$ cabal update
$ cabal install pandoc
html輸出:
$ pandoc Release-Notest.md -o Release-Notes.html
pdf輸出:
$ pandoc Release-Notest.md -o Release-Notes.pdf
參考文章
Linux下批量將md檔案批量轉換為html檔案
如何在Linux下使用Markdown進行文件工作
利用Pandoc轉換markdown和HTML、LaTeX