Spec-Zone.ru › Jekyll 4

Файлы данных

В дополнение к встроенным переменным Jekyll, доступным из встроенных переменных, вы можете указать свои собственные пользовательские данные, к которым можно получить доступ через систему шаблонов Liquid.

Jekyll поддерживает загрузку данных из файлов YAML, JSON, CSV и TSV, расположенных в каталоге _data. Обратите внимание, что файлы CSV и TSV обязательно должны содержать строку заголовков.

Эта мощная функция позволяет вам избежать повторений в ваших шаблонах и настроить специфические параметры сайта, не изменяя _config.yml.

Плагины/темы также могут использовать файлы данных для настройки переменных конфигурации.

Каталог данных

В каталоге _data вы можете хранить дополнительные данные для Jekyll, которые будут использоваться при генерации сайта. Эти файлы должны быть YAML, JSON или CSV-файлами (используя расширения .yml, .yaml, .json или .csv), и они будут доступны через site.data.

Пример: Список участников

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

В _data/members.yml:

- name: Eric Mill
  github: konklone

- name: Parker Moore
  github: parkr

- name: Liu Fengyun
  github: liufengyun

Или _data/members.csv:

name,github
Eric Mill,konklone
Parker Moore,parkr
Liu Fengyun,liufengyun

К этим данным можно получить доступ через site.data.members (обратите внимание, что имя файла определяет имя переменной, и поэтому следует избегать файлов данных с одинаковым именем файла, но различными расширениями в одном каталоге).

Теперь вы можете отобразить список участников в шаблоне:

<ul>
{% for member in site.data.members %}
  <li>
    <a href="https://github.com/{{ member.github }}">
      {{ member.name }}
    </a>
  </li>
{% endfor %}
</ul>

Подкаталоги

Файлы данных также могут быть размещены в подкаталогах каталога _data. Каждый уровень каталога будет добавлен к пространству имен переменной. Пример ниже показывает, как организации GitHub можно определить отдельно в файле в каталоге orgs:

В _data/orgs/jekyll.yml:

username: jekyll
name: Jekyll
members:
  - name: Tom Preston-Werner
    github: mojombo

  - name: Parker Moore
    github: parkr

В _data/orgs/doeorg.yml:

username: doeorg
name: Doe Org
members:
  - name: John Doe
    github: jdoe

Затем к организациям можно получить доступ через site.data.orgs, за которым следует имя файла:

<ul>
{% for org_hash in site.data.orgs %}
{% assign org = org_hash[1] %}
  <li>
    <a href="https://github.com/{{ org.username }}">
      {{ org.name }}
    </a>
    ({{ org.members | size }} members)
  </li>
{% endfor %}
</ul>

Пример: доступ к конкретному автору

Страницы и публикации также могут получить доступ к конкретному элементу данных. Пример ниже показывает, как получить доступ к конкретному элементу:

_data/people.yml:

dave:
    name: David Smith
    twitter: DavidSilvaSmith

Затем автора можно указать как переменную страницы в метаданных публикации:

---
title: sample post
author: dave
---

{% assign author = site.data.people[page.author] %}
<a rel="author"
  href="https://twitter.com/{{ author.twitter }}"
  title="{{ author.name }}">
    {{ author.name }}
</a>

Для получения информации о создании надежной навигации для вашего сайта (особенно если у вас есть веб-сайт документации или другой тип сайта Jekyll с множеством страниц для организации), см. Навигация.

© 2020 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/datafiles/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API