56

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

所以,我想继续使用 GH wiki 来收集资料、编辑、保存等,但我也想导出内容以创建一个我们可以称为“手册”的 pdf 文件。每次我只想运行几个脚本时,我想自动生成手册的更新版本,我不能为此付出太多努力。

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

另一个有趣的想法可能是每月发布一次网站,直接从 wiki 转储内容。

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

4

7 回答 7

74

但是...... GitHub repo 的 Github wiki 本身就是一个 git repo(2010 年 8 月推出)。

您可以克隆它,向其推送或从中拉取。

每个 wiki 都是一个 Git 存储库,因此您可以像其他任何东西一样推送和拉取它们。
每个 wiki 都尊重与源存储库相同的权限。
只需将“ .wiki”添加到 URL 中的任何存储库名称,您就可以开始了。

这使得您问题的“导出”部分非常微不足道。

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

于 2013-09-12T09:19:41.007 回答
13

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

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

然后,在我的存储库中的 wiki 页面上,我单击“在桌面中克隆” 克隆

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

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

最终的结果真的很好。

于 2016-05-18T10:38:53.050 回答
4

我发现许多解决方案难以重现/获得正确的版本/理解/修复/等等......因此,我将提供一个拼凑的 docker 解决方案,以便在 Windows(使用 git bash)/MacOS/Linux 上轻松转换 5 “简单”的命令

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

    .markdown-body .highlight pre,
    .markdown-body pre{
      overflow:visible !important;
    }
    
  • 最终 pdf 中的某些链接被 +1 页关闭,有些则不是。不知道模式是什么。但是ids(#)的anchors似乎没有这个问题

于 2017-06-22T00:27:36.827 回答
2

我发现必须单独转换每个 Markdown 文档真的很烦人(markdown 文档之间的链接丢失了),所以我最终编写了一个简单的 C# 程序供我自己使用,只需一步即可:a) 下载 wiki 的最新版本来自Github,b)将所有合并为一个pdf的markdown文档转换为

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

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

MarkdownToPDF.exe user=simionsoft project=SimionZoo output-file=SimionZoo.pdf
于 2019-03-11T12:27:10.930 回答
1

在 Pure PostScript 中为 Barcode Writer 创建可移植文档时,我已经完成了这一点:

GitHub Wiki + Makefile + pandoc → PDF

此博客文章中描述了该过程。

于 2015-12-11T23:38:36.137 回答
1

克隆 wiki 后的另一个选择是使用这个Markdown 到 PDF包,特别是如果你已经在使用 Atom。对我来说效果很好。

于 2018-12-05T00:32:30.873 回答
0

您也可以尝试html_links_to_pdf

这是一个 Python 3 脚本,用于将 GitHub Wiki 转换为 pdf 格式,使用与 GitHub 相同的样式,但更简洁。

于 2015-02-23T01:17:51.780 回答