Site icon 8HOST.COM

Стандартный контент Jekyll

Jekyll – это генератор статических сайтов, который предлагает некоторые функции системы управления контентом (CMS), но при этом позволяет избежать проблем производительности и безопасности, которые бывают при использовании баз данных. Также Jekyll поставляется со специальными функциями для обработки контента, организованного по датам. Jekyll хорошо подходит для людей, которые часто работают офф-лайн, предпочитают использовать легкий редактор для поддержки контента и контроль версий для отслеживания изменений на сайте.

В первом мануале – Установка Jekyll и создание сайта в Ubuntu 16.04 – вы научились устанавливать Jekyll и его зависимости, создавать простой сайт в домашнем каталоге и открывать порт сайта в брандмауэре.

В этом мануале вы узнаете, как использовать автоматически сгенерированный контент и как Jekyll превращает исходные файлы в статический контент.

Требования

Чтобы работать с этим мануалом, нужно выполнить предыдущее руководство, Установка Jekyll и создание сайта в Ubuntu 16.04.

Домашняя страница

Начнем обзор с домашней страницы, которая собирается из четырех разных исходных файлов. Мы рассмотрим каждый из этих файлов по отдельности, чтобы понять, как они соединяются, чтобы создать статическую домашнюю страницу.

Если вы остановили веб-сервер разработки после выполнения первого мануала, запустите его снова:

cd ~/www
jekyll serve --host=203.0.113.0

Затем посетите сайт в веб-браузере. На домашней странице присутствуют следующие элементы:

Настройки конфигурации: файл _config.yml

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

По умолчанию _config.yml, созданный при запуске команды jekyll new, содержит пять параметров, которые отображаются на главной странице:

Эта информация автоматически включается во все остальные страницы и сообщения, которые вы создаете. Если вам нужно обновить один из этих параметров, вы можете внести все изменения в этот файл. Попробуйте сделать это.

Откройте файл в новом терминале:

nano ~/www/_config.yml

Укажите новые значения:

title: 8host Blog
email: 8host@8host.com
description: >
Welcome to my blog!
github_username: 8host
twitter_username: 8host

Оставьте url и baseurl без изменений на время разработки – их можно изменить при развертывании.

Чтобы увидеть изменения, внесенные в конфигурационный файл, необходимо остановить веб-сервер, нажав CTRL-C, а затем перезапустить его:

jekyll serve --host=203.0.113.0

Примечание: Убедитесь, что каждая строка в description имеет отступы, по крайней мере, в один пробел; иначе вы столкнетесь с ошибкой:

could not find expected ':' while scanning a simple key at line 19 column 1

Когда все будет готово, сохраните файл и выйдите из редактора. Затем перезагрузите страницу в браузере. В зависимости от настроек локального кэша браузера вам может понадобиться нажать Shfit+Reload, чтобы увидеть новые данные.

В файле _config.yml есть еще много настроек, но пока мы не будем их трогать и перейдем к следующему исходному файлу.

Страницы: файл about.md

Перейдите по ссылке About в правом верхнем углу. Изменения, внесенные в этот конфигурационный файл, будут отображаться выше и ниже основного контента About.

Текст, который находится по центру страницы, и ссылка в заголовке хранятся в файле about.md, который содержит четыре вида контента, они перечислены ниже.

1. Титульные элементы Jekyll

Блок в начале файла about.md, который начинается и заканчивается тремя штрихами, – это титульные элементы Jekyll. Это первое, что вы должны увидеть в файле. Этот раздел сообщает Jekyll, что файл должен быть проанализирован. Обычно он содержит YAML, но также он может быть пустым. Пустой раздел титульных элементов иногда полезно использовать для файлов CSS или других файлов, в которых не нужно устанавливать какие-либо значения, но необходимо получить доступ к переменным.

Страница About содержит такие титульные элементы:

---
layout: page
title: About
permalink: /about/
---

2. Отображаемый текст

Контент страницы идет после титульных элементов. Указанный здесь текст появляется на странице, например «This is the base Jekyll 3. theme».

3. Markdown

Markdown является частью содержимого главной страницы и контролирует формат контента. Для поддержки статического сайта он будет преобразовываться в HTML. Часто авторы контента предпочитают использовать Markdown, а не HTML, потому что его проще читать и писать.

4. Директивы шаблонов Liquid

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

{% include icon-github.html username="jekyll" %}

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

Изменение заголовка

Откройте файл и вместо About используйте заголовок About me:

nano ~/www/about.md
---
. . .
title: "About me"
. . .
---

Сохраните и закройте файл. Этот заголовок изменится везде, где он встречался на сайте.

Добавление новой страницы

Затем добавьте на сайт страницу Contact и используйте markdown, чтобы добавить изображение.

Начнем с создания каталога assets для хранения изображения:

mkdir ~/www/assets

Затем передайте изображение на нашу машину с помощью wget. Флаг -O направит его в созданный каталог. Флаг требует также указать имя файла:

wget -O ~/www/assets/postcard.jpg http://assets.8host.com/articles/jekyll-1604/postcard.jpg

Когда изображение будет на локальной машине, создайте новую страницу:

nano ~/www/contact.md
---
layout: page
title: "Send me a postcard!"
---
8host\\
Attn: 8host Blog\\
101 Avenue of the Americas\\
New York, NY 10013
![A postcard](/assets/postcard.jpg)

Давайте подробнее рассмотрим markdown. Во-первых, двойной слеш в конце каждой строки инициирует возврат без дополнительного пробела. Во-вторых, изображение отображается с помощью символов ! [] (). Восклицательный знак указывает, что следующая ссылка является изображением. Квадратные скобки содержат альтернативный текст, который будет использоваться, если изображения не загружаются. Круглые скобки содержат ссылку на файл изображения. Узнать больше о стиле разметки Jekyll по умолчанию можно на веб-сайте kramdown.

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

С учетом новых файлов начало файловой структуры будет выглядеть так:

├── about.md
├── assets
│   └── postcard.jpg
├── _config.yml
├── contact.md

Вернитесь на домашнюю страницу, и на ней вы увидите новую ссылку в меню навигации.

Примечание: Обычно на странице контактов есть интерактивная веб-форма. Jekyll не предоставляет встроенной обработки формы, но вы можете использовать облачные сервисы, такие как Disqus, Formspree или FormKeep.

Записи: каталог _posts/YYYY-MM-DD-welcome-to-jekyll.markdown

Следуйте по ссылке Welcome to Jekyll, чтобы просмотреть образец записи в блоге.

Каталог _posts содержит файлы, названные по формату YYYY-MM-DD-Words-in-Title. Если файл поста не назван в этом формате, он не будет обрабатываться. Если имя файла содержит дату в будущем, страница не будет обрабатываться статическим сайтом. Используя в имени файла дату в будущем, вы можете настроить cron или другие средства автоматизации для публикации записей после определенной даты и времени. Файлы записей могут иметь расширение .markdown, .md, .html или другие расширения, если у вас установлены пользовательские преобразователи.

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

---
layout: post
title:  "Welcome to Jekyll!"
date:   2016-08-31 17:35:19 +0000
categories: jekyll update
---

Примечание: Дата в титульных элементах не имеет прямого отношения к дате в начале имени файла. Имя файла должно начинаться с даты в правильном формате, чтобы его можно было проанализировать. Если в имени указана дата в будущем, файл не будет обрабатываться до этой даты. Между тем дата в титульных элементах определяет структуру каталогов после обработки файла и используется как значение, отображаемое на главной странице и в записи.

Остальные файлы

На данный момент мы подробно рассмотрели три файла: _config.yml, about.md и _posts/YYYY-MM-DD-welcome-to-jekyll.markdown. Ниже приведен краткий обзор файлов, работа которых не отображаются непосредственно в браузере:

Из этих четырех файлов только CSS влияет на представление контента. Если вас особенно интересуют Jekyll и Sass, посмотрите на этот пример.

Заключение

В этом мануале мы подробно рассмотрели стандартный контент Jekyll. Также теперь вы знаете, как объединяются исходные файлы для создания веб-страниц. Вы можете определять значения нескольких компонентов в одном файле. Также Jekyll позволяет динамически размещать записи на главной странице, поэтому вам не нужно вручную обновлять страницу, чтобы добавить новую запись.

В следующей части этой серии мануалов мы рассмотрим структуру файла статического сайта, как эта структура отражается в URL-адресах страниц и стандартных записей и как переопределить поведение Jekyll по умолчанию.