将源代码从 GitHub 转换为 PDF
Conversion of Source Code to PDF from GitHub
我正在尝试从我在 GitHub 上的特定存储库中获取所有文件,并将它们转换为 PDF。我已经阅读并看到了一个示例 here
但是,我仍然对如何着手这样做感到困惑。我必须把我所有的文件都变成一个 PDF 文件,然后将其上传到大学网站。
我对 UNIX 命令不是很熟悉,我正在尝试执行以下操作:
for i in *.lua; do echo "$i"; echo "---"; cat "$i"; echo ; done > result.pdf
然后我打算把所有的 pdf 合并在一起,但我希望有更好的方法来做这件事。我专门处理 .lua
和 .md
文件扩展名。
我个人认为这可以通过使用一些 UNIX 命令来完成,但是如上所述,我不熟悉它们。
总而言之,我的主要 objective 是获取位于 Github 存储库中的一系列文件,并将它们合并到一个 PDF 文件中。即使获取多个 PDF 文件也是 ok 是最好的了。即使 .word
文件格式也足够好。
操作系统:OSX 或 Windows 7 64 位
我建议研究语法荧光笔。 Pygments has the ability to generate HTML, RTF, etc. If you chose to output HTML files, you could then use a tool like 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脚本的转换。当然,如果您要转换 Lua 个脚本,您会希望使用 -l 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
我正在尝试从我在 GitHub 上的特定存储库中获取所有文件,并将它们转换为 PDF。我已经阅读并看到了一个示例 here
但是,我仍然对如何着手这样做感到困惑。我必须把我所有的文件都变成一个 PDF 文件,然后将其上传到大学网站。
我对 UNIX 命令不是很熟悉,我正在尝试执行以下操作:
for i in *.lua; do echo "$i"; echo "---"; cat "$i"; echo ; done > result.pdf
然后我打算把所有的 pdf 合并在一起,但我希望有更好的方法来做这件事。我专门处理 .lua
和 .md
文件扩展名。
我个人认为这可以通过使用一些 UNIX 命令来完成,但是如上所述,我不熟悉它们。
总而言之,我的主要 objective 是获取位于 Github 存储库中的一系列文件,并将它们合并到一个 PDF 文件中。即使获取多个 PDF 文件也是 ok 是最好的了。即使 .word
文件格式也足够好。
操作系统:OSX 或 Windows 7 64 位
我建议研究语法荧光笔。 Pygments has the ability to generate HTML, RTF, etc. If you chose to output HTML files, you could then use a tool like 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脚本的转换。当然,如果您要转换 Lua 个脚本,您会希望使用 -l 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