需求: 比如这个项目, 它是电子书, 但是是md文件的集合, 需求就是, 怎么把它聚合成一个markdown, 或者pdf, 或epub等格式.
发现了这个项目, 它可以完成这个任务. 但是我发现需要改代码才能完成任务. 所以看看它是怎么实现的.
如何聚合成一个markdown文件. 巧妙: awk 'FNR==1{print ""}{print}' $(source) > $(filename).md
. 其实就是用awk把所有的文件内容print出来, 中间加一个换行符. 当然一开始也会多一个换行
如何得到pdf/epub等格式? 其实这是通过pandoc来做的. 但是我修改了pandoc参数, 因为原来的代码在我这里有中文字体问题, 运行不起来. 我改为了:
pandoc -s $(filename).md -o $(filename).pdf \
--pdf-engine=xelatex \
-V mainfont='Songti SC' -V monofont='Monaco' -V CJKmainfont='Songti SC' \
--toc
然后说说怎么用, 我没有html, epub这些需求(epub在我电脑上看起来比较麻烦), markdown和pdf即可. 所以我其实只需要这个仓库中的Makefile, 用的时候修改source和filename变量即可.