【问题标题】:Rendering a GitHub wiki on a GitHub Pages Jekyll site在 GitHub Pages Jekyll 站点上渲染 GitHub wiki
【发布时间】:2024-04-26 07:40:02
【问题描述】:

我有一个包含 80 多页 wiki 的存储库。我想为该项目在 Jekyll (GitHub Pages) 站点上呈现所有 wiki 页面的索引,并使用自定义布局和站点其余部分的样式呈现站点上的每个页面。

为此,我的第一个直觉是使用 git 子模块将来自 wiki 的页面(GitHub 公开为 git repo)包含在 Jekyll 站点的 repo 中。但据我所知:据我所知,Jekyll 不会接受不符合作为帖子的降价文件。它们没有以日期命名,也没有任何前题,所以 Jekyll 只是忽略了它们。

为了解决这个问题,我通常会写一个插件来做我想做的事。但由于该站点托管在 GitHub 页面上,因此它不允许我创建任何插件。

所以,我真的不知道该怎么做。没有自定义插件也可以吗?

【问题讨论】:

    标签: git github jekyll github-pages


    【解决方案1】:

    想法是:

    1. 下载我的plugin
    2. 阅读文档
    3. 安装和 rake
    4. 喝啤酒

    安装和配置后 raketask/插件在做什么(5 分钟):

    1. rake wikisub 添加一个指向您的 wiki 的 git 子模块。必须是公共 wiki,但可以在另一个存储库中
    2. 使用 yaml 前端内容将下载的 wiki 页面复制并转换为 markdown
    3. 构建 Jekyll,然后插件拦截 wiki 页面链接转换以将其转换为 Jekyll 链接
    4. 点比萨饼

    目前唯一的问题(或不是)是 Kramdown 在 Github markdown 上表现不佳。你必须切换到红地毯。

    还有两个任务可用:

    • rake wikibuild : 重建维基页面

    • rake wiki : 同步 wiki 页面,构建并选择性地将更改推送到 Jekyll 存储库

    跳吧!

    【讨论】:

    • 这是一个非常好的和详细的回复。我有类似的想法,但我懒得写这样的东西 :) 可能还需要解决的一件事是 wiki 页面之间的内部链接(如果有的话),可能需要更改为指向到网站上的页面而不是 github 上的页面(我想这取决于链接是绝对的还是相对的,以及页面的主要结构是否与 github 上的相似)。
    • @MitjaBezenšek 你说得对,我错过了这一点。这对你来说可能是一个很好的代码 Kata ;-) require "kramdown" 然后类似于 kDoc = Kramdown::Document.new(fileContent) 但是,现在我无法让 parser.parse 返回 parser::link_defs 集合以用于 wiki 页面。以防存储库在这里:github.com/djacquel/JekyllTest
    • @MitjaBezenšek 我已经完成了我的代码 Kata。请参阅编辑后的答案。
    • 3 年半后,它仍然可以正常工作。
    • 截至 2020 年 7 月 31 日,该链接已失效。
    最近更新 更多