Подтвердить что ты не робот

Можете ли вы использовать переменные страницы Jekyll в макете?

Я использую Jekyll для своего блога, и мне хотелось бы использовать уникальный стиль CSS в конкретных сообщениях. Прямо сейчас, я указываю CSS файл в переднем поле YAML, например:

style: artdirection.css

и используя его в макете, как это:

{% if page.style %}
    <link rel="stylesheet" href="{{ page.style }}">
{% endif %}`

Это работает, но я бы предпочел включить фактический стиль CSS в теге стиля в frontmatter страницы вместо ссылки на таблицу стилей.

Я попытался разобраться с этим несколькими способами, включая метод, описанный здесь, но переменная, которую я захватил, используется только для использования внутри самой записи, а не в макете.

Итак, возможно ли это?

4b9b3361

Ответ 1

Я уверен, что это сработает:

---
title: xxx
style: |
  /* You can put any CSS here */
  /* Just indent it with two spaces */
  /* And don't forget the | after "style: " */
  h2 {
    color: red;
  }
---

Your markdown/textile goes here. h2s will be red

И затем в вашем макете:

<style type="text/css">
{{ page.style }}
</style>

И это должно быть.

Ответ 2

Jekyll 3 нарушение изменения

Теперь переменные, объявленные в макете front-matter (_layouts/default.html), видны через:

{{ layout.style }}

вместо старшего:

{{ page.style }}

https://github.com/jekyll/jekyll/issues/4123