我最近开始学习Markdown以便与文档一起使用,并且需要打印一些Markdown页面。我想使用命令行,终端等实用程序,使我可以将Github风格的Markdown转换为PDF。它需要突出显示正确的语法,并且看起来不可怕。谢谢你的帮助。
我最近开始学习Markdown以便与文档一起使用,并且需要打印一些Markdown页面。我想使用命令行,终端等实用程序,使我可以将Github风格的Markdown转换为PDF。它需要突出显示正确的语法,并且看起来不可怕。谢谢你的帮助。
Answers:
我已经成功使用握柄在Chrome中显示降价,然后在“打印”对话框中使用Chrome的“另存为PDF”选项。
pip install grip
grip your_markdown.md
抓地力将在localhost:5000上显示markdown-只需编辑并刷新浏览器即可。准备好后打印。
与pandoc相比,这提供了更可靠的表示,并且比安装乳胶(pandoc需要pdf生成)的重量更轻。
在这个答案中,打印不是命令行,但是仍然发现它更容易/更可靠(对于长文档,包括相对链接的图像和代码突出显示,看起来像Github的100%)。
grip your_markdown.md --export your_markdown.html
在这里很有用。将其导出到html文件,然后可以使用wkhtmltopdf之类的命令从命令行中进行打印。
您还可以使用基于Node.js的markdown-pdf
npm install -g markdown-pdf
markdown-pdf /path/to/markdown
看看pandoc。它确实具有语法突出显示。它可能需要您对文档进行(较小)更改,因为它具有自己的markdown风格,而且我不知道它与GitHub风格的匹配程度如何。
pandoc -h
确实返回了对GitHub Flavored Markdown的支持,所以我将此问题标记为已解决。
pandoc
在Fedora Linux 上安装并遇到了依赖梦night-主要与LaTex有关。我的建议是先跳过pandoc,然后先尝试其他选项
pandoc
,如下所示:--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
sudo apt install pandoc texlive-latex-recommended texlive-xetex texlive-luatex pandoc-citeproc etoolbox wkhtmltopdf
在Ubuntu上,可能不是全部都需要),那么pandoc --variable urlcolor=cyan myfile.md -o myfile.pdf
正如我在评论中所述,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
来源重点:
如果您想改用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
可以在此处找到源高亮使用的更多示例
Windows:
Vim,ps2pdf(由Ghostscript提供)和Source-highlight均可通过Cygwin获得。
我最近创建了一项将降价文档转换为PDF的服务。它支持Github风格的markdown以及语法突出显示。该服务位于:http : //markdown2pdf.com
矿山解决方案:将markdown with转换pandoc
为html (不要忘了使用css for pandoc显示表格边框),然后使用打开它libreoffice
,选择一个选项export as pdf
。
注意:这里和Internet上都没有提到解决方案对我有用:1)基于浏览器的解决方案(例如,抓地力)正在添加多余的信息,例如页面编号,而我没有设法将其删除; 2)将pandoc转换为pdf是坏了,对我来说,它会生成一个空表(也许是因为unicode,是的,我将其配置为使用xetex),3)基于站点的解决方案(即gitprint.com)也添加了多余的内容,例如类似github的边距,而我只需要一个用awk生成的简单表即可!
pandoc
应该为您工作,例如--variable mainfont="Liberation Serif" --variable sansfont="Liberation Sans"
我已经尝试了几种chrome插件和在线转换器。
MDtr2PDF是最好的一种。它支持Github-flavored-markdown和unicode。
我根据个人需要优化了此代码段:
# 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