2013-12-16 11:52:11 +0000 2013-12-16 11:52:11 +0000
159
159

我如何将Github风味的Markdown转换为PDF?

我最近开始学习Markdown用于文档,需要打印出我的一些Markdown页面。我想使用一个命令行、终端等工具,让我把Github风味的Markdown转换为PDF。它需要有适当的语法高亮,不应该看起来很可怕。谢谢你的帮助。

答案 (12)

161
161
161
2014-02-27 13:55:56 +0000

我成功地使用 grip 在Chrome浏览器中显示标记,然后在打印对话框中使用Chrome的 “另存为PDF "选项。

pip install grip  
grip your_markdown.md

grip会在localhost:5000上显示标记 - 只需编辑并刷新浏览器。准备好后进行打印。

这样做比pandoc更可靠,而且比安装latex(pandoc生成pdf所需)更轻。

这个答案中的打印不是命令行,但还是觉得这个更简单/更可靠(对于一个长长的文档,包括相对链接的图片和代码高亮,看起来100%像Github)。

56
56
56
2015-04-16 01:52:57 +0000

你也可以使用基于Node.js的markdown-pdf

npm install -g markdown-pdf
markdown-pdf /path/to/markdown
```。
43
43
43
2014-02-11 12:22:33 +0000

看看 pandoc 。它确实有语法高亮。你可能需要对你的文档做一些小的改动,因为它有自己的标记语言,我不知道它和 GitHub 的语言有多接近。

12
12
12
2014-08-08 02:44:02 +0000

如果markdown文件是托管在github仓库, gitprint 是一个有趣的选项来创建pdf /打印。

你需要做的就是在URL中用github.com代替gitprint.com。这是gitprint主页上的一个示例

不幸的是,它不能在markdown gists上工作,只能在版本库的markdown文件上工作。

8
8
8
2015-07-10 08:44:36 +0000

有一个在线转换器可以在 http://www.markdowntopdf.com 这提供了开箱即用的语法高亮,是我目前看到的最简单的解决方案。它也能正确处理GFM的其他特定功能,例如表格。

6
6
6
2013-12-16 14:08:08 +0000

正如我在评论中所说,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 使用。

6
6
6
2018-08-22 14:39:58 +0000

对于使用Linux的用户,使用 pandoc

安装:

sudo apt install pandoc texlive-latex-extra

是的,你需要-extra包,因为字体。

转换:

pandoc --from markdown -o output.pdf my-file.md
``` 是的,你需要0x6&包,因为字体。
3
3
3
2015-08-27 03:55:39 +0000

我最近创建了一个将markdown文档转换为PDF的服务,它支持Github风味的markdown以及语法高亮。它支持Github风味的markdown以及语法高亮。这个服务的地址是 http://markdown2pdf.com

1
1
1
2017-10-07 10:49:27 +0000

我已经尝试了几个chrome插件和在线转换器。 MDtr2PDF是最好的一个。它支持Github-flavoured-markdown和unicode。

1
1
1
2020-01-17 07:08:10 +0000

我最幸运的是使用VSCode和Markdown PDF扩展。网上的转换器把我的文件编码搞乱了,或者在文件头插入了水印,所以我使用了VSCode和[Markdown PDF]0x3&扩展。

使用方法:

1.安装扩展名 2.用VSCode打开你的MD文件。用VSCode打开你的MD文件,确保Markdown高亮显示已启用 3. 打开命令调色板(F1),键入export并选择markdown-pdf: Export (pdf)

NB:该扩展安装并在后台使用本地版本的Chromium。

有几个选项可以控制格式化,在上面链接的网站上都有说明。

1
1
1
2018-05-15 17:41:27 +0000

我根据个人需要对【这个片段】(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/md2pdfsudo 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。

1
1
1
2016-09-10 09:56:12 +0000

我的解决方案:用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!生成的。