使用带有 Jekyll 主题的 per-page 标题

Use per-page title with a Jekyll theme

这是我的个人 GH Pages 网站。

我的 /_config.yml:

中有这套
theme: jekyll-theme-cayman

title: iBug @ GitHub
description: The small personal site for iBug

现在它会在 GH Pages 生成的每个页面上显示一个大标题 iBug @ GitHub 和一个标语。我想为特定页面设置覆盖。我试过了

---
title: Blog index
---

/blog/index.html中,但它不起作用。它只会改变页面的 HTML 标题(浏览器标题栏),但不会改变页面顶部大块中的 "title"。

如何为单个页面设置覆盖标题?

这就是这个主题的实现方式,如果您在 line 14 上检查 Cayman 主题的默认布局,您可以看到它使用的确切变量。

<h1 class="project-name">{{ site.title | default: site.github.repository_name }}</h1>

希望对您有所帮助!

更新:我已经提交了一个拉取请求来更改主题中的这个,下面的答案不再是必需的,因为当你使用主题时它已经被应用了现在的。您需要做的就是在前面的内容中指定标题覆盖:

---
title: My custom title
---

要指定另一个标题,您需要更改布局文件。

复制the default layout并将其放入<GitHub repo>/_layouts/default.html,并将第16行更改为:

<h1 class="project-name">{{ page.title | default: site.title }}</h1>

然后 Jekyll 会尊重设置在 front matter 中的 title,并将它放在那里。

我的方法是使用 javascript 如下。

<script>
    document.getElementsByClassName("project-name").item(0).innerText = "{{ page.title }}";
</script>

您可以在 _includes 目录中写入一个 html 文件并使用 {% include your_file.html %}.