从github wiki轻松导出(?)

时间:2013-09-12 08:55:08

标签: pdf github latex markdown wiki

我在GitHub wiki中收集了大量资料。我真的很喜欢使用wiki与其他人合作,恕我直言这个平台非常好,我喜欢它!

所以,我想继续使用GH wiki收集内容,编辑,保存等,但我也想导出内容以创建一个我们称之为“手册”的pdf文件。 我希望每次只想运行几个脚本时自动生成手册的更新版本,我不能在这方面投入太多精力。

我想有可能以某种方式导出内容并使用pandoc(http://johnmacfarlane.net/pandoc/)创建pdf,可能会添加索引和样式文件。

另一个有趣的想法可能是每月发布一个网站,直接从维基中删除内容。

我猜其他人已经做过类似的事但我没有找到任何东西。 有什么想法吗?

7 个答案:

答案 0 :(得分:51)

但是......一个GitHub回购的Github wiki本身就是一个git repo(introduced in August 2010)。

你可以克隆它,推它或拉它。

  

每个wiki都是一个Git存储库,因此您可以像其他任何东西一样推送和拉动它们。
  每个wiki都尊重与源存储库相同的权限   只需添加" .wiki"到URL中的任何存储库名称,您已准备好了。

这使得" export"你问题的一部分真是微不足道。

从那里,您会发现大量用于将降价页面转换为pdf的脚本:

答案 1 :(得分:8)

我添加了这个答案,以防它有助于任何新读者:)这就是我所做的:

我安装了GitHub桌面:https://desktop.github.com/

然后,在我的存储库的wiki页面上,我点击了#34; Clone in Desktop" Clone

这将wiki本地保存为.md文件(按照屏幕上的步骤完成)

然后我使用http://www.markdowntopdf.com/将其转换为pdf (注意:我重命名了这些文件,以删除在上传到网站之前无法在pdf文件名中使用的字符)

最终结果非常好。

答案 2 :(得分:3)

我发现许多解决方案很难重现/获得正确的版本/理解/修复/等等...相反,我会提出一个拼凑的docker解决方案,以便在Windows上轻松转换(使用git bash)/ MacOS / Linux in 5" easy"命令

git clone {project_url}.wiki .

# Convert *.md to *.md.html using the actual github pipeline
docker run --rm -e DOCKER_USER_ID=`id -u` -e DOCKER_GROUP_ID=`id -u` \
            v "`pwd`:/src" -v "`pwd`:/out" andyneff/github-markdown-preview

# Fix hyperlinks, since wkhtmltopdf is stricter than github servers
docker run --rm -v `pwd`:/src -w /src perl \
    perl -p -i -e 's|(<a href=")([^/"#]+?)(#[^"]*)?(">.*?</a>)|\1\L\2\E.md.html\L\3\E\4|g'\
                  *.html

# Lowercase all filename so that hyperlink match
docker run --rm -v `pwd`:/src -w /src python \
    python -c 'import sys;import os; [os.rename(f, f.lower()) for f in sys.argv[1:]]' \
               *.md.html

#Convert html to pdf using QT webkit
docker run -it --rm -e DOCKER_USER_ID=`id -u` -e DOCKER_GROUP_ID=`id -u`\
           -v `pwd`:/work -w /work andyneff/wkhtmltopdf \
           wkhtmltopdf --encoding utf-8 --minimum-font-size 14 \
           --footer-left "[date]" --footer-right "[page] / [topage]" \
           --footer-font-size 10 \
           toc \
           *.html document.pdf

如果没有更好的解决方案,perl是可能失败的主要部分。 Pandoc有一个非常好的过滤器解决方案,但是没有使用github管道。

错误

  • 超宽代码块将使用滚动条呈现,并在pdf中基本上被截断。最好使代码块不会溢出,但您可以将--user-style-sheet user.css添加到wkhtmltopdf命令(toc / cover之前),然后添加到user.css < / p>

    .markdown-body .highlight pre,
    .markdown-body pre{
      overflow:visible !important;
    }
    
  • 最终pdf中的某些链接是+1页面,有些则不是。不确定模式是什么。但是带有ID的锚点(#)似乎没有这个问题

答案 3 :(得分:1)

在为Barcode Writer in Pure PostScript创建便携式文档时,我已经完成了这一步:

GitHub Wiki + Makefile + pandoc→PDF

此过程在此blog post中进行了描述。

答案 4 :(得分:1)

克隆Wiki后,另一个选择是使用此Markdown to PDF软件包,尤其是如果您已经在使用Atom的时候。 对我来说很棒。

答案 5 :(得分:1)

我发现不得不单独转换每个降价文档真的很烦(降价文档之间的链接丢失了),所以我最终写了一个简单的C#程序供自己使用,只需一步即可完成:a)下载最新版本来自Github的Wiki,b)将所有降价文档转换为一个pdf进行转换

您可以从以下位置下载二进制文件(Windows或支持Mono的任何平台): https://github.com/borjafdezgauna/CoderDocTools/releases/latest

例如,如果您要通过simionsoft用户将SimionZoo存储库转换为PDF,则可以:

MarkdownToPDF.exe user=simionsoft project=SimionZoo output-file=SimionZoo.pdf

答案 6 :(得分:0)

您也可以尝试html_links_to_pdf

这是一个Python 3脚本,只是为了将GitHub Wiki转换为pdf格式,使用与GitHub相同的样式,但稍微清晰。