要将markdown文件转换成html文件,可以用discount或python-markdown软件包提供的markdown:
以下主要介绍在Ubuntu系统下的转化:
# Debian/Ubuntu
sudo apt-get install discount
或:
# Debian/Ubuntu
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:
# Debian/Ubuntu
sudo apt-get install python-pisa
# 将html转换成PDF
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)
这样你就可以通过简单的一个命令生成当前目录下所有md文件的pdf或html输出了:
# 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
这样就可以了。
参考链接:http://www.ituring.com.cn/article/10044