Используйте заголовок для каждой страницы с темой Jekyll

Это мой личный сайт GH Pages.

У меня есть этот набор в моем /_config.yml:

theme: jekyll-theme-cayman

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

Теперь он показывает большой заголовок iBug @ GitHub и слоган на каждой странице, создаваемой GH Pages. Я хочу установить переопределения для определенных страниц. Я старался

---
title: Blog index
---

в /blog/index.html, но это не работает. Он изменяет только HTML-заголовок страницы (заголовок браузера), но не «заголовок» в большом блоке в верхней части страницы.

Как установить переопределяющий заголовок для одной страницы?


person iBug    schedule 01.03.2018    source источник


Ответы (3)


Обновление: с тех пор я отправил запрос на включение, чтобы изменить это в теме, и приведенный ниже ответ больше не нужен, поскольку он уже применялся при использовании темы на данный момент. Все, что вам нужно сделать, это указать переопределение заголовка во вступительной части:

---
title: My custom title
---

Чтобы указать другой заголовок, вам нужно изменить файл макета.

Скопируйте макет по умолчанию и поместите его в <GitHub repo>/_layouts/default.html , и измените строку 16 на это:

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

Тогда Джекил будет уважать набор title во вступительной части и поместит его туда.

person iBug    schedule 03.03.2018

Именно так реализована эта тема, если вы посмотрите макет по умолчанию для темы Cayman на строка 14 вы можете увидеть, какую именно переменную он использует.

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

Надеюсь, это поможет!

person Mario Nikolaus    schedule 02.03.2018
comment
<h1 class="project-name">{{ page.title | default: site.title | default: site.github.repository_name }}</h1> now github.com/pages-themes/cayman/commit/ - person Emerson Rocha; 03.05.2021

Мой подход использует javascript следующим образом.

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

Вы можете написать html-файл в каталоге _includes и использовать {% include your_file.html %}.

person Ghostlead    schedule 19.03.2019