【问题标题】:Tell Jekyll (on github pages) to convert README.md to README.html, not index.html告诉 Jekyll(在 github 页面上)将 README.md 转换为 README.html,而不是 index.html
【发布时间】:2017-10-08 22:21:01
【问题描述】:

我正在使用 Jekyll 在 Github Pages 上构建一个项目网页,使用“Dinky”主题,直接开箱即用。

README.md 会自动转换为index.html,这对于快速入门非常有帮助。

但是,我希望有一个单独编写的主页index.md,而是将README.md 转换为README.html(就像大多数*.md 文件一样)。当我添加我的index.md 时,Jekyll 将它转换为 index.html,但现在根本没有转换 README.md — 大概它有 index.html 作为 README.mdindex.md 的目标,并且后者获胜。

如何让 Jekyll 重新使用 README.html 作为 README.md 的转化目标?

最好,我想要一个不需要在 README.md 本身中添加配置数据的解决方案,这样我就可以继续使 README.md 与中的人类可读版本保持同步master 分支。

复制它的注意事项:所有这些都发生在通过 Github Pages 在线构建时,以及使用本地 jekyll build。我使用的唯一自定义 jekyll 设置是站点 Gemfile 中的 gem 'github-pages', group: :jekyll_plugins 和站点 _config.yml 中的 theme: jekyll-theme-dinky

它似乎是特定于 Github Pages 主题,而不是 Dinky 主题:除了 Dinky 之外的其他主题表现出相同的行为,但裸露的 Jekyll 网站似乎没有。


编辑:感谢@wasthishelpful 提供了非常有用的评论和部分答案。将 YAML frontmatter 块添加到 README.md 设置 permalink: README.html 可以满足我的要求。不幸的是,我仍然没有找到仅通过修改_config.yml 来达到相同效果的方法:例如在那里添加一个frontmatter默认值

defaults:
  - 
    scope:
      path: "README.md"
    values:
      permalink: "README.html"

似乎没有任何作用。 (我尝试过在文件名周围加引号和不加引号,在 theme: jekyll-theme-dinky 行之前和之后都试过。)

【问题讨论】:

  • Readme.md 在访问 Github 时会在 repo 的根目录显示一个快速概览,但它们都不会在 Jekyll 网站中生成 index.html
  • @marcanuy:我知道 Jekyll 通常不会将 README.md 转换为 index.html,但是当使用带有主题的 Github Pages 时,我向你保证会。我将编辑我的答案以澄清我的尝试,但简而言之,这发生在本地构建和通过 Github Pages 提供时,除了用于 Github Pages 主题的设置外,我没有本地自定义设置。跨度>
  • 我无法重现它,从未见过 README.md 被转换为index.html
  • @marcanuy:非常奇特——谢谢你的尝试!该项目本身位于github.com/UniMath/TypeTheory/tree/gh-pages,因此您可以看到完整的设置。目前它同时具有index.mdREADME.md,因此如问题中所述,index.html 是从前者生成的,而后者则没有;但如果我删除index.md,那么index.html 会从README.md 生成。 (github页面主题使用bundler,所以如果你还没有安装它可能需要gem install bundler && bundler install之类的东西。)
  • 您是否尝试在README.md 中使用permalink,或者在您的_config.yml 中使用front matter defaults

标签: github jekyll github-pages


【解决方案1】:

您可以在README.md 中使用permalink

---
permalink: README.html
---

TypeTheory: the mathematical study of type theories, in univalent foundations
==========

Code  on C-systems, D-systems, ...

您也可以在您的_config.yml 中使用front matter defaults

defaults:
  - 
    scope:
      path: "README.md"
    values:
      permalink: "README.html"

但是你仍然需要在README.md 中添加一个front matter 来让它被jekyll 解析(即使它是一个空的):

---
---

TypeTheory: the mathematical study of type theories, in univalent foundations
==========

Code  on C-systems, D-systems, ...

【讨论】:

    【解决方案2】:

    我了解到,如果您将 any frontmatter 添加到自述文件中,它将停止将 README.md 转换为 index.html。我通过将这个 frontmatter 添加到我的 README.md 中偶然发现了这一点

    ---
    title: Design Your Bot
    ---
    

    【讨论】:

      猜你喜欢
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 2015-06-04
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多