我正在尝试从我在 GitHub 上拥有的特定存储库中获取所有文件并将它们转换为 PDF。我已经阅读并看到了一个例子 here
但是,我仍然对如何执行此操作感到有些困惑。我必须把我所有的文件都变成一个单独的 PDF 文件,然后把它上传到大学的网站上。
我对 UNIX 命令不是很熟悉,我试图执行以下操作:
for i in *.lua; do echo "$i"; echo "---"; cat "$i"; echo ; done > result.pdf
然后我打算把所有的 pdf 文件合并在一起,但我希望有更好的方法来做到这一点。我只专门处理
.lua
和 .md
文件扩展名。我个人相信这可以通过使用一些 UNIX 命令来完成,但如前所述,我对它们并不熟悉。
总而言之,我的主要目标是将位于 Github 存储库中的一系列文件合并为一个 PDF 文件。即使获得多个 PDF 文件也可以,这是最好的做法。甚至一个
.word
文件格式足够好。操作系统 : OSX 或 Windows 7 64 位
最佳答案
我建议查看语法荧光笔。 Pygments具有生成 HTML、RTF 等的能力。如果您选择输出 HTML 文件,那么您可以使用类似 wkhtmltopdf 的工具。将语法突出显示的 HTML 文件转换为 PDF 文件。
或者,Pygments 可以做 LaTeX。如果您熟悉 LaTeX,那么您可以让 Pygments 生成 LaTeX 输出,并使用 pdflatex
生成您的 PDF 文件。
你说你在 OS X 上。要安装 Pygments,打开一个终端并输入:
sudo easy_install Pygments
这将安装一个程序
pygmentize
您可以使用它来转换代码。接下来,安装 wkhtmltopdf .
现在,您可以获取一个文件,在语法上突出显示它,然后将其转换为 PDF:
pygmentize -l ruby -f html -O full,style=vim test.rb > test.html
wkhtmltopdf test.html test.pdf
在这里,我展示了 Ruby 脚本的转换。当然,您想使用
-l lua
如果您要转换 Lua 脚本。然后,您可以将这些命令合并到一个递归遍历目录的 shell 脚本中,例如
#!/bin/bash
# Change this to the repository directory
REPOSITORY=/path/to/the/repo
# Iterate over the repository
while read source_file
do
filename=$(basename $source_file)
dir=$(dirname $source_file)
# For each .lua file found, generate an HTML file in /tmp
pygmentize -l lua -f html -O full,style=vim $source_file > /tmp/${filename}.html
# Convert the HTML file to a PDF file in the same directory
# as the .lua file
wkhtmltopdf /tmp/${filename}.html ${dir}/${filename}.pdf
done < <(find $REPOSITORY -type f -iname '*.lua')
把它放在一个名为
convert.sh
的文件中.然后,要运行它,请键入:chmod +x convert.sh
./convert.sh
关于bash - 从 GitHub 将源代码转换为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33454865/