Spec-Zone.ru › Jekyll 4

Публикации

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

Папка Публикаций

В папке _posts хранятся записи вашего блога. Обычно записи пишутся в формате Markdown, также поддерживается HTML.

Создание записей

Для создания записи добавьте файл в директорию _posts со следующим форматом:

YEAR-MONTH-DAY-title.MARKUP

Где YEAR — четырёхзначное число, MONTH и DAY — двузначные числа, а MARKUP — расширение файла, определяющее используемый формат. Например, следующие имена файлов являются допустимыми:

2011-12-31-new-years-eve-is-awesome.md
2012-09-12-how-to-write-a-blog.md

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

---
layout: post
title:  "Welcome to Jekyll!"
---

# Welcome

**Hello world**, this is my first Jekyll blog post.

I hope you like it!
Профессиональный совет™: Ссылка на другие записи

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

Обратите внимание на кодировки символов

Обработчики содержимого могут изменять определенные символы, чтобы сделать их более привлекательными. Например, расширение smart в Redcarpet преобразует стандартные ASCII кавычки в фигурные, Unicode кавычки. Для правильного отображения этих символов в браузере, определите значение мета-тега charset, включив <meta charset="utf-8"> в <head> вашего макета.

Включение изображений и ресурсов

В какой-то момент вам захочется включить изображения, загружаемые файлы или другие цифровые активы вместе с текстовым контентом. Одним из распространённых решений является создание папки в корне каталога проекта, например, assets, куда помещаются изображения, файлы или другие ресурсы. Затем из любой записи можно ссылаться на них, используя корень сайта в качестве пути к активу. Лучший способ зависит от конфигурации домена (поддомена) и пути вашего сайта, но вот несколько простых примеров в Markdown:

Включение актива изображения в запись:

... which is shown in the screenshot below:
![My helpful screenshot](/assets/screenshot.jpg)

Ссылка на PDF для скачивания читателями:

... you can [get the PDF](/assets/mydoc.pdf) directly.

Отображение списка записей

Создание индекса записей на другой странице должно быть простым благодаря Liquid и его тегам. Вот простой пример того, как создать список ссылок на записи вашего блога:

<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
    </li>
  {% endfor %}
</ul>

Вы имеете полный контроль над тем, как (и где) отображать записи и как структурировать свой сайт. Если вы хотите узнать больше, ознакомьтесь с работой шаблонов с Jekyll.

Обратите внимание, что переменная post существует только внутри цикла for выше. Если вам нужно получить доступ к переменным текущей отображаемой страницы/записи (переменные записи/страницы, содержащей цикл for ), используйте переменную page.

Теги и Категории

Jekyll имеет первоклассную поддержку тегов и категорий в записях блога.

Теги

Теги записи определяются в метаданных записи, используя либо ключ tag для единственного значения, либо tags для нескольких значений.
Так как Jekyll ожидает несколько значений, сопоставленных с ключом tags, он автоматически разделит строковое значение, если оно содержит пробелы. Например, в то время как метаданные tag: classic hollywood будут обработаны как единый элемент "classic hollywood", метаданные tags: classic hollywood будут обработаны как массив элементов ["classic", "hollywood"].

Независимо от выбранного ключа в метаданных, Jekyll сохраняет метаданные, сопоставленные с множественным ключом, который доступен для шаблонов Liquid.

Все зарегистрированные на сайте теги доступны шаблонам Liquid через site.tags. Итерация по site.tags на странице вернёт другой массив с двумя элементами, где первый — имя тега, а второй — массив записей с этим тегом.

{% for tag in site.tags %}
  <h3>{{ tag[0] }}</h3>
  <ul>
    {% for post in tag[1] %}
      <li><a href="{{ post.url }}">{{ post.title }}</a></li>
    {% endfor %}
  </ul>
{% endfor %}

Категории

Категории записи работают аналогично тегам:

  • Они могут быть определены в метаданных, используя ключи category или categories (следуя той же логике, что и теги)
  • Все зарегистрированные на сайте категории доступны шаблонам Liquid через site.categories, по которым можно итерироваться (аналогично циклу для тегов выше).

Однако, сходство между категориями и тегами заканчивается на этом.

В отличие от тегов, категории записей также могут быть определены по пути файла записи. Любая директория выше _post будет считаться категорией. Например, если запись находится по пути movies/horror/_posts/2019-05-21-bride-of-chucky.markdown, то movies и horror автоматически регистрируются как категории для этой записи.

Если в метаданных записи также определены категории, они просто добавляются к существующему списку, если их там нет.

Главное отличие между категориями и тегами заключается в том, что категории записи могут быть включены в сгенерированный URL для записи, а теги — нет.

Поэтому, в зависимости от наличия метаданных category: classic hollywood или categories: classic hollywood, пример записи выше будет иметь URL movies/horror/classic%20hollywood/2019/05/21/bride-of-chucky.html или movies/horror/classic/hollywood/2019/05/21/bride-of-chucky.html соответственно.

Выдержки из записей

Вы можете получить фрагмент содержимого записи, используя переменную excerpt для записи. По умолчанию это первый абзац содержимого записи, но его можно настроить, установив переменную excerpt_separator в метаданных или _config.yml.

---
excerpt_separator: <!--more-->
---

Excerpt with multiple paragraphs

Here's another paragraph in the excerpt.
<!--more-->
Out-of-excerpt

Вот пример вывода списка записей блога с выдержками:

<ul>
  {% for post in site.posts %}
    <li>
      <a href="{{ post.url }}">{{ post.title }}</a>
      {{ post.excerpt }}
    </li>
  {% endfor %}
</ul>

Черновики

Черновики — это записи без даты в имени файла. Это записи, над которыми вы все ещё работаете и пока не хотите публиковать. Для начала работы с черновиками создайте папку _drafts в корне вашего сайта и создайте свой первый черновик:

.
├── _drafts
│   └── a-draft-post.md
...

Чтобы предварительно просмотреть свой сайт с черновиками, запустите jekyll serve или jekyll build со значением --drafts . Каждому будет назначено значение времени изменения файла черновика для его даты, и, таким образом, вы увидите текущие черновики как самые последние записи.

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

Spec-Zone.ru

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