Написание нового поста
В этом руководстве вы узнаете, как написать сообщение в шаблоне Chirpy, и его стоит прочитать, даже если вы раньше использовали Jekyll, поскольку многие функции требуют установки определенных переменных.
Именование и путь
Создайте новый файл с именем YYYY-MM-DD-TITLE.EXTENSION и поместите его в _posts корневого каталога. Обратите внимание, что EXTENSION должен быть одним из md и markdown. Если вы хотите сэкономить время на создании файлов, рассмотрите возможность использования для этого плагина Jekyll-Compose.
Фронт-маттер
Вам нужно заполнить Front Matter в начале поста:
1
2
3
4
5
6
---
title: TITLE
date: YYYY-MM-DD HH:MM:SS +/-TTTT
categories: [TOP_CATEGORY, SUB_CATEGORY]
tags: [TAG] # TAG names should always be lowercase
---
По умолчанию для постов установлено значение
post, поэтому нет необходимости добавлять переменную layout в блок Front Matter.
Часовой пояс даты
Чтобы корректно указать дату публикации, задайте timezone в _config.yml и укажите смещение часового пояса в date фронт-маттера. Формат: +/-TTTT, например +0800.
Категории и теги
categories каждого поста могут содержать до двух элементов, а количество элементов в tags может быть от нуля до бесконечности. Например:
1
2
3
4
---
categories: [Animal, Insect]
tags: [bee]
---
Информация об авторе
Информацию об авторе обычно не нужно задавать в Front Matter: по умолчанию она берется из social.name и первой записи social.links в конфигурации. При необходимости это можно переопределить:
Добавление информации об авторе в _data/authors.yml (если на вашем сайте нет этого файла, не стесняйтесь создать его).
1
2
3
4
<author_id>:
name: <full name>
twitter: <twitter_of_author>
url: <homepage_of_author>
Затем используйте author, чтобы указать одну запись, или authors, чтобы указать несколько записей:
1
2
3
4
5
---
author: <author_id> # for single entry
# or
authors: [<author1_id>, <author2_id>] # for multiple entries
---
При этом ключ author также может идентифицировать несколько записей.
Преимущество чтения информации об авторе из файла
_data/authors.ymlсостоит в том, что страница будет иметь метатегtwitter:creator, который выполняет Twitter Cards и используется для SEO.
Описание сообщения
По умолчанию первые слова сообщения используются для отображения на домашней странице со списком сообщений, в блоке Further Reading и в XML-канале RSS. Если вы не хотите отображать автоматически созданное описание публикации, вы можете настроить его с помощью поля description в Front Matter следующим образом:
1
2
3
---
description: Short summary of the post.
---
Кроме того, текст description также будет отображаться под заголовком сообщения на странице сообщения.
Оглавление
По умолчанию оглавление (TOC) отображается в правой панели поста. Чтобы отключить его глобально, установите toc: false в _config.yml. Чтобы отключить TOC только для одного поста, добавьте в его Front Matter следующее:
1
2
3
---
toc: false
---
Комментарии
Глобальные настройки комментариев определяются опцией comments.provider в файле _config.yml. Как только для этой переменной будет выбрана система комментариев, комментарии будут включены для всех сообщений.
Если вы хотите закрыть комментарий к определенному сообщению, добавьте следующее в Front Matter сообщения:
1
2
3
---
comments: false
---
СМИ
Мы называем изображения, аудио и видео медиаресурсами в Chirpy.
Префикс URL-адреса
Время от времени нам приходится определять повторяющиеся префиксы URL-адресов для нескольких ресурсов в сообщении. Это утомительная задача, которой можно избежать, установив два параметра.
Если вы используете CDN для размещения медиафайлов, вы можете указать
cdnв_config.yml. URL-адреса медиа-ресурсов для аватара сайта и сообщений затем начинаются с имени домена CDN.1
cdn: https://cdn.com
Чтобы указать префикс пути к ресурсу для текущей записи/диапазона страниц, установите
media_subpathво Front Matter публикации:1 2 3
--- media_subpath: /path/to/media/ ---
Варианты site.cdn и page.media_subpath можно использовать по отдельности или вместе для гибкого формирования конечного ресурса URL-адреса: [site.cdn/][page.media_subpath/]file.ext
Изображения
Подпись
Добавьте курсив к следующей строке изображения, тогда он станет заголовком и появится внизу изображения:
1
2

_Image Caption_
Размер
Чтобы макет содержимого страницы не смещался при загрузке изображения, мы должны установить ширину и высоту для каждого изображения.
1
{: width="700" height="400" }
Для SVG вам необходимо как минимум указать его ширину, иначе он не будет отображен.
Начиная с Chirpy v5.0.0, height и width поддерживают сокращения (height → h, width → w). Следующий пример имеет тот же эффект, что и приведенный выше:
1
{: w="700" h="400" }
Позиция
По умолчанию изображение центрировано, но вы можете указать положение, используя один из классов normal, left и right.
После указания позиции подпись к изображению добавлять не следует.
Нормальное положение
Изображение будет выровнено по левому краю в примере ниже:
1
{: .normal }
Плавать влево
1
{: .left }
Плавать вправо
1
{: .right }
Темный/Светлый режим
Вы можете настроить изображения в соответствии с настройками темы в темном/светлом режиме. Для этого необходимо подготовить два изображения: одно для темного режима и одно для светлого, а затем назначить им определенный класс (dark или light):
1
2
{: .light }
{: .dark }
Тень
Скриншоты окна программы можно считать демонстрирующими эффект тени:
1
{: .shadow }
Предварительный просмотр изображения
Если вы хотите добавить изображение вверху публикации, предоставьте изображение с разрешением 1200 x 630. Обратите внимание: если соотношение сторон изображения не соответствует 1.91 : 1, изображение будет масштабировано и обрезано.
Зная эти предварительные условия, вы можете приступить к настройке атрибута изображения:
1
2
3
4
5
---
image:
path: /path/to/image
alt: image alternative text
---
Обратите внимание, что media_subpath также можно передать в изображение предварительного просмотра, то есть, если он установлен, атрибуту path требуется только имя файла изображения.
Для простоты использования вы также можете просто использовать image для определения пути.
1
2
3
---
image: /path/to/image
---
LQIP
Для изображений предварительного просмотра:
1
2
3
4
---
image:
lqip: /path/to/lqip-file # or base64 URI
---
Вы можете увидеть LQIP на превью поста «Text and Typography».
Для обычных изображений:
1
{: lqip="/path/to/lqip-file" }
Платформы социальных сетей
Вы можете вставлять видео/аудио с платформ социальных сетей, используя следующий синтаксис:
1
{% include embed/{Platform}.html id='{ID}' %}
Где Platform — это строчная буква названия платформы, а ID — идентификатор видео.
В следующей таблице показано, как получить два необходимых нам параметра в заданном URL-адресе видео/аудио, а также вы можете узнать, какие видеоплатформы поддерживаются в настоящее время.
| URL-адрес видео | Платформа | ИДЕНТИФИКАТОР |
|---|---|---|
| https://www.youtube.com/watch?v=H-B46URT4mg | youtube | H-B46URT4mg |
| https://www.twitch.tv/videos/1634779211 | twitch | 1634779211 |
| https://www.bilibili.com/video/BV1Q44y1B7Wf | bilibili | BV1Q44y1B7Wf |
| https://www.open.spotify.com/track/3OuMIIFP5TxM8tLXMWYPGV | spotify | 3OuMIIFP5TxM8tLXMWYPGV |
Spotify поддерживает некоторые дополнительные параметры:
compact- вместо этого отображать компактный плеер (напр.{% include embed/spotify.html id='3OuMIIFP5TxM8tLXMWYPGV' compact=1 %});dark- включить темную тему (например,{% include embed/spotify.html id='3OuMIIFP5TxM8tLXMWYPGV' dark=1 %}).
Видео файлы
Если вы хотите встроить видеофайл напрямую, используйте следующий синтаксис:
1
{% include embed/video.html src='{URL}' %}
Где URL – это URL-адрес видеофайла, например. /path/to/sample/video.mp4.
Вы также можете указать дополнительные атрибуты для встроенного видеофайла. Вот полный список разрешенных атрибутов.
poster='/path/to/poster.png'— изображение постера к видео, которое отображается во время загрузки видео.title='Text'— заголовок видео, который отображается под видео и выглядит так же, как для изображений.autoplay=true— видео автоматически начинает воспроизведение, как только это возможно.loop=true— автоматический возврат к началу при достижении конца видео.muted=true— изначально звук будет отключенtypes— укажите расширения дополнительных видеоформатов, разделенных знаком|. Убедитесь, что эти файлы находятся в том же каталоге, что и ваш основной видеофайл.
Рассмотрим пример, использующий все вышеперечисленное:
1
2
3
4
5
6
7
8
9
10
{%
include embed/video.html
src='/path/to/video.mp4'
types='ogg|mov'
poster='poster.png'
title='Demo video'
autoplay=true
loop=true
muted=true
%}
Аудио файлы
Если вы хотите встроить аудиофайл напрямую, используйте следующий синтаксис:
1
{% include embed/audio.html src='{URL}' %}
Где URL – это URL-адрес аудиофайла, например. /path/to/audio.mp3.
Вы также можете указать дополнительные атрибуты для встроенного аудиофайла. Вот полный список разрешенных атрибутов.
title='Text'— заголовок аудио, который отображается под аудио и выглядит так же, как для изображений.types— укажите расширения дополнительных аудиоформатов, разделенных|. Убедитесь, что эти файлы находятся в том же каталоге, что и ваш основной аудиофайл.
Рассмотрим пример, использующий все вышеперечисленное:
1
2
3
4
5
6
{%
include embed/audio.html
src='/path/to/audio.mp3'
types='ogg|wav|aac'
title='Demo audio'
%}
Закрепленные сообщения
Вы можете закрепить одну или несколько публикаций вверху главной страницы, а фиксированные публикации будут отсортированы в обратном порядке по дате их выпуска. Включить:
1
2
3
---
pin: true
---
Подсказки
Существует несколько типов подсказок: tip, info, warning и danger. Их можно создать, добавив в цитату класс prompt-{type}. Например, определите подсказку типа info следующим образом:
1
2
> Example line for prompt.
{: .prompt-info }
Синтаксис
Встроенный код
1
`inline code part`
Выделение пути к файлу
1
`/path/to/a/file.extend`{: .filepath}
Кодовый блок
Символы уценки ``` могут легко создать блок кода следующим образом:
1
2
3
```
Это фрагмент кода в виде открытого текста.
```
Указание языка
Используя ```{language}, вы получите блок кода с подсветкой синтаксиса:
1
2
3
```yaml
ключ: значение
```
Тег Jekyll
{% highlight %}несовместим с этой темой.
Номер строки
По умолчанию на всех языках, кроме plaintext, console и terminal, отображаются номера строк. Если вы хотите скрыть номер строки блока кода, добавьте к нему класс nolineno:
1
2
3
4
```shell
echo 'Больше никаких номеров строк!'
```
{: .nolineno }
Указание имени файла
Возможно, вы заметили, что язык кода будет отображаться в верхней части блока кода. Если вы хотите заменить его именем файла, вы можете добавить атрибут file для достижения этой цели:
1
2
3
4
```shell
# содержание
```
{: file="path/to/file" }
Жидкие коды
Если вы хотите отобразить фрагмент Liquid, окружите код жидкости {% raw %} и {% endraw %}:
1
2
3
4
5
6
7
{% raw %}
```liquid
{% if product.title contains 'Pack' %}
В названии этого продукта содержится слово Pack.
{% endif %}
```
{% endraw %}
Или добавьте render_with_liquid: false (требуется Jekyll 4.0 или выше) в блок YAML сообщения.
Математика
Мы используем [MathJax][mathjax] для генерации математических вычислений. Из соображений производительности веб-сайта математическая функция по умолчанию не загружается. Но его можно включить:
1
2
3
---
math: true
---
После включения математической функции вы можете добавлять математические уравнения со следующим синтаксисом:
- Математические блоки следует добавлять с помощью
$$ math $$с обязательными пустыми строками до и после$$.- Нумерацию уравнений следует добавлять с помощью
$$\begin{equation} math \end{equation}$$ - Нумерацию уравнений следует выполнять с помощью
\label{eq:label_name}в блоке уравнений и\eqref{eq:label_name}в тексте (см. пример ниже).
- Нумерацию уравнений следует добавлять с помощью
- Встроенные математические выражения (в строках) следует добавлять с помощью
$$ math $$без каких-либо пустых строк до или после$$. - Встроенные математические вычисления (в списках) следует добавлять с помощью
\$$ math $$.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!-- Block math, keep all blank lines -->
$$
LaTeX_math_expression
$$
<!-- Equation numbering, keep all blank lines -->
$$
\begin{equation}
LaTeX_math_expression
\label{eq:label_name}
\end{equation}
$$
Can be referenced as \eqref{eq:label_name}.
<!-- Inline math in lines, NO blank lines -->
"Lorem ipsum dolor sit amet, $$ LaTeX_math_expression $$ consectetur adipiscing elit."
<!-- Inline math in lists, escape the first `$` -->
1. \$$ LaTeX_math_expression $$
2. \$$ LaTeX_math_expression $$
3. \$$ LaTeX_math_expression $$
Начиная с
v7.0.0, параметры конфигурации MathJax были перенесены в файлassets/js/data/mathjax.js, и вы можете изменять параметры по мере необходимости, например добавляя расширения. Если вы создаете сайт с помощьюchirpy-starter, скопируйте этот файл из каталога установки драгоценного камня (проверьте командойbundle info --path jekyll-theme-chirpy) в тот же каталог вашего репозитория.
Русалка
Mermaid — отличный инструмент для создания диаграмм. Чтобы включить его в своем сообщении, добавьте в блок YAML следующее:
1
2
3
---
mermaid: true
---
Затем вы можете использовать его, как и другие языки уценки: окружите код графа ```mermaid and ```.
Узнать больше
Для получения дополнительной информации о сообщениях Джекилла посетитель Jekyll Docs: Posts.