我如何将Github风味的Markdown转换为PDF?
我最近开始学习Markdown用于文档,需要打印出我的一些Markdown页面。我想使用一个命令行、终端等工具,让我把Github风味的Markdown转换为PDF。它需要有适当的语法高亮,不应该看起来很可怕。谢谢你的帮助。
我最近开始学习Markdown用于文档,需要打印出我的一些Markdown页面。我想使用一个命令行、终端等工具,让我把Github风味的Markdown转换为PDF。它需要有适当的语法高亮,不应该看起来很可怕。谢谢你的帮助。
我成功地使用 grip 在Chrome浏览器中显示标记,然后在打印对话框中使用Chrome的 “另存为PDF "选项。
pip install grip
grip your_markdown.md
grip会在localhost:5000上显示标记 - 只需编辑并刷新浏览器。准备好后进行打印。
这样做比pandoc更可靠,而且比安装latex(pandoc生成pdf所需)更轻。
这个答案中的打印不是命令行,但还是觉得这个更简单/更可靠(对于一个长长的文档,包括相对链接的图片和代码高亮,看起来100%像Github)。
你也可以使用基于Node.js的markdown-pdf
npm install -g markdown-pdf
markdown-pdf /path/to/markdown
```。
有一个在线转换器可以在 http://www.markdowntopdf.com 这提供了开箱即用的语法高亮,是我目前看到的最简单的解决方案。它也能正确处理GFM的其他特定功能,例如表格。
正如我在评论中所说,Github使用 Linguist 来提供语法高亮。在Github上,你可以用这个来指定语法高亮,比如说。
```ruby
require 'redcarpet'
markdown = Redcarpet.new("Hello World!")
puts markdown.to_html
不幸的是,没有一个好的方法可以将Markdown直接转换成带有语法高亮的PDF文件。
###替代品。
**Vim** 。
如果你有vim,你可以通过在终端机上运行以下内容来轻松实现语法高亮。
vim -c hardcopy -c quit /path/to/file.ps “`
或者在vim内部:
:hardcopy >/path/to/file.ps
这将产生一个PostScript文件,可以使用ps2pdf等工具转换为pdf。
ps2pdf /path/to/file.ps
Source-highlight 。
如果您想使用HTML或LaTeX,您可以尝试使用 Source-highlight 来代替。Source-highlight支持的所有语言列表可以在 这里 找到。
一些 Source-highlight 命令的例子包括。
source-highlight -s java -f html -i Hello.java -o Hello1.html
source-highlight -s java -f html --input Hello.java --output Hello2.html --doc
source-highlight -s java -f html -i Hello.java -o Hello3.html --title "Happy Java with java2html :-)" --tab 3
使用 这个输入文件
每个命令都输出各自的 HTML 文件。 Hello1.html Hello2.html Hello3.html
更多的Source-highlight使用例子可以在这里
Windows 。 Vim , ps2pdf (由 Ghostscript 提供) 和 Source-highlight 都可以通过 Cygwin 使用。
对于使用Linux的用户,使用 pandoc 。
安装:
sudo apt install pandoc texlive-latex-extra
是的,你需要-extra
包,因为字体。
转换:
pandoc --from markdown -o output.pdf my-file.md
``` 是的,你需要0x6&包,因为字体。
我最近创建了一个将markdown文档转换为PDF的服务,它支持Github风味的markdown以及语法高亮。它支持Github风味的markdown以及语法高亮。这个服务的地址是 http://markdown2pdf.com
我最幸运的是使用VSCode和Markdown PDF扩展。网上的转换器把我的文件编码搞乱了,或者在文件头插入了水印,所以我使用了VSCode和[Markdown PDF]0x3&扩展。
使用方法:
1.安装扩展名
2.用VSCode打开你的MD文件。用VSCode打开你的MD文件,确保Markdown高亮显示已启用
3. 打开命令调色板(F1),键入export
并选择markdown-pdf: Export (pdf)
NB:该扩展安装并在后台使用本地版本的Chromium。
有几个选项可以控制格式化,在上面链接的网站上都有说明。
我根据个人需要对【这个片段】(https://gist.github.com/M1ke/7681965)进行了改进。
# sudo apt install grip wkhtmltopdf
MD=${1:-README.md}
PDF=${2:-"$MD".pdf}
PORT=8971
DELAY=10
printf "Converting $MD to $PDF on port $PORT\n"
printf "Waiting $DELAY seconds for server to start...\n"
grip "$MD" localhost:$PORT &
sleep $DELAY
wkhtmltopdf http://localhost:$PORT "$PDF"
kill $(ps -eo pid,command | grep grip | grep -v grep | awk '{print $1}')
之后保存为/usr/local/bin/md2pdf
和sudo chmod +x /usr/local/bin/md2pdf
。
用法。
md2pdf
将 README.md 转换为 README.md.pdf
md2pdf foo.md
将 foo.md 转换为 foo.md.pdf
md2pdf foo.md bar.pdf
将 foo.md 转换为 bar.pdf。
我的解决方案:用pandoc
将markdown转换为html(别忘了使用css for pandoc显示表格边框),然后用libreoffice
打开,选择一个选项export as pdf
。
NB : 这里提到的和互联网上的解决方案对我来说都不奏效:1) 基于浏览器的解决方案(i.e. grip)增加了多余的信息,比如页码,我没能删除,2) pandoc转换为pdf的功能被破坏了,对我来说,它生成了一个空表(也许是因为unicode,是的,我配置它使用xetex),3) 基于网站的解决方案(i. e. gitprint.com)。 e. gitprint.com)_也添加了多余的东西,比如类似github的页边距,而我只需要一个简单的表格,我用awk!生成的。