19 added
18 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><strong>Jekyll - генератор статичных сайтов. Грубо говоря, он просто помогает собрать из шаблонов и текстов набор HTML-файлов, которые можно разместить на любом веб-сервере. Этот сайт - Hexlet Guides - работает на Jekyll.</strong></p>
1
<p><strong>Jekyll - генератор статичных сайтов. Грубо говоря, он просто помогает собрать из шаблонов и текстов набор HTML-файлов, которые можно разместить на любом веб-сервере. Этот сайт - Hexlet Guides - работает на Jekyll.</strong></p>
2
<p>В отличие от движков для блогов или CMS вроде Wordpress или Ghost, конечный результат работы Jekyll - это не исполняемые программы на языке программирования, а статичные HTML-файлы. Поэтому для размещения сайта не нужен PHP, Node, базы данных и мощный хостинг. Раздача статических файлов создает минимальную нагрузку на сервер, поэтому чаще всего достаточно самого дешевого хостинга.</p>
2
<p>В отличие от движков для блогов или CMS вроде Wordpress или Ghost, конечный результат работы Jekyll - это не исполняемые программы на языке программирования, а статичные HTML-файлы. Поэтому для размещения сайта не нужен PHP, Node, базы данных и мощный хостинг. Раздача статических файлов создает минимальную нагрузку на сервер, поэтому чаще всего достаточно самого дешевого хостинга.</p>
3
<p>Jekyll-сайт можно разместить бесплатно на Github Pages, чем мы и займемся в этом руководстве.</p>
3
<p>Jekyll-сайт можно разместить бесплатно на Github Pages, чем мы и займемся в этом руководстве.</p>
4
<h2>Содержание</h2>
4
<h2>Содержание</h2>
5
<ul><li><a>Обзор</a></li>
5
<ul><li><a>Обзор</a></li>
6
<li><a>Установка Jekyll на локальную машину</a></li>
6
<li><a>Установка Jekyll на локальную машину</a></li>
7
<li><a>Файловая структура</a></li>
7
<li><a>Файловая структура</a></li>
8
<li><a>Конфигурация</a></li>
8
<li><a>Конфигурация</a></li>
9
<li><a>Создание постов</a></li>
9
<li><a>Создание постов</a></li>
10
<li><a>Создание страниц</a></li>
10
<li><a>Создание страниц</a></li>
11
<li><a>Публикация в интернете</a></li>
11
<li><a>Публикация в интернете</a></li>
12
<li><a>Дополнительные возможности</a></li>
12
<li><a>Дополнительные возможности</a></li>
13
</ul><h2>Обзор</h2>
13
</ul><h2>Обзор</h2>
14
<p>Рассмотрим схему работы Jekyll и схему публикации сайта вкратце:</p>
14
<p>Рассмотрим схему работы Jekyll и схему публикации сайта вкратце:</p>
15
<ol><li>Вы создаёте шаблоны для вашего сайта: как выглядит главная страница, как выглядят страницы постов, категорий, шапки, подвалы и другие блоки сайта.</li>
15
<ol><li>Вы создаёте шаблоны для вашего сайта: как выглядит главная страница, как выглядят страницы постов, категорий, шапки, подвалы и другие блоки сайта.</li>
16
<li>Вы пишете посты в формате<a>Markdown</a>(доступны и другие форматы).</li>
16
<li>Вы пишете посты в формате<a>Markdown</a>(доступны и другие форматы).</li>
17
<li>Jekyll генерирует конечные HTML-страницы на основе шаблонов и Markdown-файлов.</li>
17
<li>Jekyll генерирует конечные HTML-страницы на основе шаблонов и Markdown-файлов.</li>
18
<li>Вы публикуете HTML на веб-сервере и сайт становится доступным в интернете.</li>
18
<li>Вы публикуете HTML на веб-сервере и сайт становится доступным в интернете.</li>
19
</ol><p>GitHub Pages позволяет размещать любые HTML-страницы, но он также поддерживает Jekyll на своей стороне. Это означает, что вы можете не отправлять сгенерированный HTML в Github, а отправлять только папку с вашим Jekyll-проектом и Markdown-файлами, а Github сам запустит генерацию HTML и разместит их у себя.</p>
19
</ol><p>GitHub Pages позволяет размещать любые HTML-страницы, но он также поддерживает Jekyll на своей стороне. Это означает, что вы можете не отправлять сгенерированный HTML в Github, а отправлять только папку с вашим Jekyll-проектом и Markdown-файлами, а Github сам запустит генерацию HTML и разместит их у себя.</p>
20
<h2>Установка Jekyll на локальную машину</h2>
20
<h2>Установка Jekyll на локальную машину</h2>
21
<p>Есть два способа работы с Jekyll на локальной машине: напрямую или через Docker. Второй способ намного проще и быстрее, но может быть непривычен, если вы никогда раньше не работали с Докером.</p>
21
<p>Есть два способа работы с Jekyll на локальной машине: напрямую или через Docker. Второй способ намного проще и быстрее, но может быть непривычен, если вы никогда раньше не работали с Докером.</p>
22
<h3>Прямая установка и запуск Jekyll</h3>
22
<h3>Прямая установка и запуск Jekyll</h3>
23
<p>Jekyll - программа для командной строки, написанная на языке Ruby. Вам не нужно знать этот язык, чтобы работать с Jekyll, но нужно иметь интерпретатор этого языка в системе.</p>
23
<p>Jekyll - программа для командной строки, написанная на языке Ruby. Вам не нужно знать этот язык, чтобы работать с Jekyll, но нужно иметь интерпретатор этого языка в системе.</p>
24
<p>В зависимости от операционной системы, у вас может быть уже установлен Ruby.</p>
24
<p>В зависимости от операционной системы, у вас может быть уже установлен Ruby.</p>
25
<p>В Windows можно использовать<a>RubyInstaller</a>. Работать с Jekyll нужно через командную строку. Для подготовки необходимого окружения в Windows используйте наш гайд<a>Как начать разрабатывать в Windows</a>.</p>
25
<p>В Windows можно использовать<a>RubyInstaller</a>. Работать с Jekyll нужно через командную строку. Для подготовки необходимого окружения в Windows используйте наш гайд<a>Как начать разрабатывать в Windows</a>.</p>
26
<p>В официальной документации Jekyll есть раздел,<a>посвященный разным способам установки Ruby и Jekyll на Windows</a>.</p>
26
<p>В официальной документации Jekyll есть раздел,<a>посвященный разным способам установки Ruby и Jekyll на Windows</a>.</p>
27
<p>В macOS Ruby есть в комплекте. Проверьте его версию:</p>
27
<p>В macOS Ruby есть в комплекте. Проверьте его версию:</p>
28
-
ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]<p>Нужна версия 2.0 и выше. Если у вас по какой-то причине более ранняя версия, то обновите Ruby командой sudo gem install ruby.</p>
28
+
<p>Нужна версия 2.0 и выше. Если у вас по какой-то причине более ранняя версия, то обновите Ruby командой sudo gem install ruby.</p>
29
<p>Теперь установите Bundler. Это менеджер пакетов, именно через него мы в итоге установим Jekyll и другие необходимые для него пакеты:</p>
29
<p>Теперь установите Bundler. Это менеджер пакетов, именно через него мы в итоге установим Jekyll и другие необходимые для него пакеты:</p>
30
-
gem install bundler<p>Теперь установите Jekyll:</p>
30
+
<p>Теперь установите Jekyll:</p>
31
-
gem install jekyll<p>Теперь создайте блог:</p>
31
+
<p>Теперь создайте блог:</p>
32
-
jekyll new myblog cd myblog bundle exec jekyll serve<p>Откройте в браузере<a>http://localhost</a></p>
32
+
<p>Откройте в браузере<a>http://localhost</a></p>
33
-
.<h3>Установка и запуск Jekyll через Docker</h3>
33
+
<p>.</p>
34
+
<h3>Установка и запуск Jekyll через Docker</h3>
34
<p>Если вы не знакомы с Докером, то посмотрите наш<a>вебинар</a>. Для более глубокого ознакомления можно прочитать<a>большой гайд</a>в нашем блоге на Хабре или почитать официальную документацию и поискать другие статьи в интернете.</p>
35
<p>Если вы не знакомы с Докером, то посмотрите наш<a>вебинар</a>. Для более глубокого ознакомления можно прочитать<a>большой гайд</a>в нашем блоге на Хабре или почитать официальную документацию и поискать другие статьи в интернете.</p>
35
<p>Официальный Докер-образ Jekyll -<a>jekyll/jekyll</a>.</p>
36
<p>Официальный Докер-образ Jekyll -<a>jekyll/jekyll</a>.</p>
36
<p>Самый простой способ начать - использовать<a>наш пакет</a>с готовой темой, основанной на<a>Bootstrap 4</a>.</p>
37
<p>Самый простой способ начать - использовать<a>наш пакет</a>с готовой темой, основанной на<a>Bootstrap 4</a>.</p>
37
-
git clone git@github.com:hexlet-boilerplates/jekyll-bootstrap4-docker.git cd make serve<p>Откройте в браузере<a>http://localhost</a></p>
38
+
<p>Откройте в браузере<a>http://localhost:4000</a>.</p>
38
-
.<h2>Файловая структура</h2>
39
+
<h2>Файловая структура</h2>
39
<p>Базовая структура директории с сайтом выглядит так:</p>
40
<p>Базовая структура директории с сайтом выглядит так:</p>
40
-
. ├── _config.yml ├── _drafts | ├── begin-with-the-crazy-ideas.md | └── on-simplicity-in-technology.md ├── _includes | ├── footer.html | └── header.html ├── _layouts | ├── default.html | └── post.html ├── _posts | ├── 2007-10-29-hello.md | └── 2009-04-26-good-stuff.md ├── _sass | ├── _base.scss | └── _layout.scss ├── _site └── index.html<p>Вкратце:</p>
41
+
<p>Вкратце:</p>
41
<ul><li>ваши посты (например, в формате<a>Markdown</a>находятся в папке _posts.</li>
42
<ul><li>ваши посты (например, в формате<a>Markdown</a>находятся в папке _posts.</li>
42
<li>шаблоны страниц - в папке _layouts</li>
43
<li>шаблоны страниц - в папке _layouts</li>
43
<li>используемые в шаблонах повторяющиеся блоки - в папке _includes</li>
44
<li>используемые в шаблонах повторяющиеся блоки - в папке _includes</li>
44
<li>главная страница сайта - в index.html</li>
45
<li>главная страница сайта - в index.html</li>
45
</ul><p>Jekyll берет за основу шаблон, генерирует для каждого поста соответствующие страницы и собирает весь сайт в папке _site.</p>
46
</ul><p>Jekyll берет за основу шаблон, генерирует для каждого поста соответствующие страницы и собирает весь сайт в папке _site.</p>
46
<h2>Конфигурация</h2>
47
<h2>Конфигурация</h2>
47
<h3>_config.yml</h3>
48
<h3>_config.yml</h3>
48
<p>В файле _config.yml описана конфигурация сайта.</p>
49
<p>В файле _config.yml описана конфигурация сайта.</p>
49
-
title: "Page title" header_title: "Header Title" email: your@ema.il author: Your Name description: "My blog description" baseurl: "" url: "https://myblog.com" date_format: "%-d.%m.%Y"<p>Важная деталь: url - адрес вашего корневого сайта, а baseurl - путь к Jekyll-сайту.</p>
50
+
<p>Важная деталь: url - адрес вашего корневого сайта, а baseurl - путь к Jekyll-сайту.</p>
50
-
https://hello.goo.com/myblog/ |--------------------|======| | | url baseurl<p>Если ваш сайт находится в корне, то baseurl будет пустым.</p>
51
+
<p>Если ваш сайт находится в корне, то baseurl будет пустым.</p>
51
<p>Кроме базовых параметров, вы можете добавлять в этот файл собственные параметры. Они будут доступны в шаблонах. Например, в нашем базовом пакете есть такая строка в конфигурации:</p>
52
<p>Кроме базовых параметров, вы можете добавлять в этот файл собственные параметры. Они будут доступны в шаблонах. Например, в нашем базовом пакете есть такая строка в конфигурации:</p>
52
-
twitter_username: hexlet<p>Параметр используется в файле _includes/header.html:</p>
53
+
<p>Параметр используется в файле _includes/header.html:</p>
53
-
{% raw %}{% if site.twitter_username %} <li class="nav-item"> <a class="nav-link" href="https://twitter.com/{{ site.twitter_username }}"> <span class="mr-1 fa fa-twitter"></span> </a> </li> {% endif %}{% endraw %}<p>Здесь сказано "если в конфигурации есть параметр twitter_username с непустым значением, то вывести ссылку на Твиттер".</p>
54
+
<p>Здесь сказано "если в конфигурации есть параметр twitter_username с непустым значением, то вывести ссылку на Твиттер".</p>
54
<h3>Настройка темы</h3>
55
<h3>Настройка темы</h3>
55
<p>Jekyll идет в комплекте с базовой темой оформления. Наш<a>пакет</a>основан на популярном фреймворке<a>Bootstrap 4</a>.</p>
56
<p>Jekyll идет в комплекте с базовой темой оформления. Наш<a>пакет</a>основан на популярном фреймворке<a>Bootstrap 4</a>.</p>
56
<p>Рассмотрим наш пример поближе:</p>
57
<p>Рассмотрим наш пример поближе:</p>
57
<ul><li>_includes - блоки, используемые в нескольких местах<ul><li>head.html - элемент <head>, где подключаются стили, указываются мета-теги и так далее</li>
58
<ul><li>_includes - блоки, используемые в нескольких местах<ul><li>head.html - элемент <head>, где подключаются стили, указываются мета-теги и так далее</li>
58
<li>header.html - шапка сайта</li>
59
<li>header.html - шапка сайта</li>
59
<li>footer.html - подвал сайта</li>
60
<li>footer.html - подвал сайта</li>
60
<li>post_footer.html - показывается под постом на странице поста (включается в конфигурации)</li>
61
<li>post_footer.html - показывается под постом на странице поста (включается в конфигурации)</li>
61
<li>share_buttons.html - кнопки шеринга в соц. сетях под постом на странице поста (включаются и настраивается в конфигурации)</li>
62
<li>share_buttons.html - кнопки шеринга в соц. сетях под постом на странице поста (включаются и настраивается в конфигурации)</li>
62
<li>social_links.html - ссылки на соц. сети, показываются в шапке сайта (включается и настраиваются в конфигурации)</li>
63
<li>social_links.html - ссылки на соц. сети, показываются в шапке сайта (включается и настраиваются в конфигурации)</li>
63
</ul></li>
64
</ul></li>
64
<li>_layouts - основные шаблоны сайта<ul><li>default.html - главный шаблон, используется на главной странице</li>
65
<li>_layouts - основные шаблоны сайта<ul><li>default.html - главный шаблон, используется на главной странице</li>
65
<li>post.html - шаблон поста, используется на странице поста</li>
66
<li>post.html - шаблон поста, используется на странице поста</li>
66
</ul></li>
67
</ul></li>
67
<li>css - стили<ul><li>style.css - основной файл стилей сайта</li>
68
<li>css - стили<ul><li>style.css - основной файл стилей сайта</li>
68
<li>likely.css - стили для<a>кнопок</a>шеринга в соц. сетях</li>
69
<li>likely.css - стили для<a>кнопок</a>шеринга в соц. сетях</li>
69
</ul></li>
70
</ul></li>
70
<li>js - скрипты<ul><li>likely.js - скрипт для<a>кнопок</a>шеринга в соц. сетях</li>
71
<li>js - скрипты<ul><li>likely.js - скрипт для<a>кнопок</a>шеринга в соц. сетях</li>
71
</ul></li>
72
</ul></li>
72
<li>images - изображения</li>
73
<li>images - изображения</li>
73
</ul><h3>Front Matter</h3>
74
</ul><h3>Front Matter</h3>
74
<p>Любой файл, содержащий блок Front Matter в формате<a>YAML</a>будет обработан Jekyll'ом как особый файл. Блок Front Matter должен идти в самом начале файла.</p>
75
<p>Любой файл, содержащий блок Front Matter в формате<a>YAML</a>будет обработан Jekyll'ом как особый файл. Блок Front Matter должен идти в самом начале файла.</p>
75
<p>Например, страница index.html - главная страница сайта - содержит такие строчки в начале:</p>
76
<p>Например, страница index.html - главная страница сайта - содержит такие строчки в начале:</p>
76
-
--- layout: default ---<p>А так выглядит сам default layout (файл _layouts/default.html):</p>
77
+
<p>А так выглядит сам default layout (файл _layouts/default.html):</p>
77
-
{% raw %}<!DOCTYPE html> <html> {% include head.html %} <body> {% include header.html %} <div class="container"> <div class="row"> <div class="col">{{ content }}</div> </div> {% include footer.html %} </div> </body> </html>{% endraw %}<p>Таким образом Jekyll при сборке берет содержание файла index.html, вставляет в {% raw %}{{ content }}{% endraw %} шаблона и создает конечный index.html.</p>
78
+
<p>Таким образом Jekyll при сборке берет содержание файла index.html, вставляет в {% raw %}{{ content }}{% endraw %} шаблона и создает конечный index.html.</p>
78
<h2>Создание постов</h2>
79
<h2>Создание постов</h2>
79
<p>Посты находятся в папке _posts. Мы используем формат по умолчанию - Markdown. Пример названия файла: 2017-12-18-features.md. Как видно, дата публикации указана в названии файла. После даты идёт название, используемое для URL. Этот пост будет доступен по адресу mysite.com/features.</p>
80
<p>Посты находятся в папке _posts. Мы используем формат по умолчанию - Markdown. Пример названия файла: 2017-12-18-features.md. Как видно, дата публикации указана в названии файла. После даты идёт название, используемое для URL. Этот пост будет доступен по адресу mysite.com/features.</p>
80
<p>Пост также начинается с блока front matter:</p>
81
<p>Пост также начинается с блока front matter:</p>
81
-
--- layout: post title: Features cover_url: "/images/tree.jpg" ---<p>Здесь могут содержаться как переменные Jekyll'а, так и наши собственные переменные. Здесь мы указали две собственных переменных: title и cover_url. Они используются в шаблонах:</p>
82
+
<p>Здесь могут содержаться как переменные Jekyll'а, так и наши собственные переменные. Здесь мы указали две собственных переменных: title и cover_url. Они используются в шаблонах:</p>
82
<p>В файле _layouts/post.html:</p>
83
<p>В файле _layouts/post.html:</p>
83
-
<h1>{% raw %}{{ page.title }}{% endraw %}</h1><p>В файле _includes/head.html:</p>
84
+
<p>В файле _includes/head.html:</p>
84
-
<meta property="og:image" content="{{ page.cover_url | prepend: site.baseurl | prepend: site.url }}"><p>Здесь задаётся полный адрес обложки для социальных сетей. Подробнее об og-тегах можно узнать из урока "<a>Интеграция с соц. сетями и семантический веб</a>" бесплатного курса<a>Основы HTML, CSS и веб-дизайна</a>на Хекслете.</p>
85
+
<p>Здесь задаётся полный адрес обложки для социальных сетей. Подробнее об og-тегах можно узнать из урока "<a>Интеграция с соц. сетями и семантический веб</a>" бесплатного курса<a>Основы HTML, CSS и веб-дизайна</a>на Хекслете.</p>
85
<p>Вы можете помещать картинки в любую директорию и включать их в посты и в front matter по относительному пути.</p>
86
<p>Вы можете помещать картинки в любую директорию и включать их в посты и в front matter по относительному пути.</p>
86
<h2>Создание страниц</h2>
87
<h2>Создание страниц</h2>
87
<p>Вы можете создавать любые директории и HTML-файлы самостоятельно, по аналогии с файлом index.html.</p>
88
<p>Вы можете создавать любые директории и HTML-файлы самостоятельно, по аналогии с файлом index.html.</p>
88
<p>Например, если создать директорию works и положить внутрь новый файл index.html (который может даже не содержать front matter, а быть полностью независимым статическим файлом), то страница будет доступна по адресу вроде mysite.com/works (в зависимости от значений url и baseurl в конфигурации)</p>
89
<p>Например, если создать директорию works и положить внутрь новый файл index.html (который может даже не содержать front matter, а быть полностью независимым статическим файлом), то страница будет доступна по адресу вроде mysite.com/works (в зависимости от значений url и baseurl в конфигурации)</p>
89
<h2>Публикация в интернете</h2>
90
<h2>Публикация в интернете</h2>
90
<h3>Публикация HTML-файлов на веб-сервере</h3>
91
<h3>Публикация HTML-файлов на веб-сервере</h3>
91
<p>Файлы из папки _site достаточно разместить на веб-сервере. Для этого подойдет практически любой хостинг. Подробнее о хостингах можно узнать из бесплатного курса<a>Введение в веб-разработку</a>на Хекслете.</p>
92
<p>Файлы из папки _site достаточно разместить на веб-сервере. Для этого подойдет практически любой хостинг. Подробнее о хостингах можно узнать из бесплатного курса<a>Введение в веб-разработку</a>на Хекслете.</p>
92
<h3>Публикация на Github Pages с поддержкой Jekyll</h3>
93
<h3>Публикация на Github Pages с поддержкой Jekyll</h3>
93
<p>Github - популярный хостинг git-репозиториев - поддерживает Jekyll. Это значит, что вы можете разместить всю папку со своим Jekyll-проектом в репозитории, и Github сам будет генерировать HTML-страницы. При этом вам не нужно включать папку _site в репозиторий. Конечные HTML-файлы не будут видны в репозитории ни в каком виде. Этот сервис называется<a>Github Pages</a>.</p>
94
<p>Github - популярный хостинг git-репозиториев - поддерживает Jekyll. Это значит, что вы можете разместить всю папку со своим Jekyll-проектом в репозитории, и Github сам будет генерировать HTML-страницы. При этом вам не нужно включать папку _site в репозиторий. Конечные HTML-файлы не будут видны в репозитории ни в каком виде. Этот сервис называется<a>Github Pages</a>.</p>
94
<p>Подробнее о Git и работе с Github можно узнать из бесплатного курса<a>Системы контроля версий (GIT)</a>на Хекслете.</p>
95
<p>Подробнее о Git и работе с Github можно узнать из бесплатного курса<a>Системы контроля версий (GIT)</a>на Хекслете.</p>
95
<ol><li><p>Зарегистрируйтесь на<a>https://github.com/</a>если еще не сделали этого.</p>
96
<ol><li><p>Зарегистрируйтесь на<a>https://github.com/</a>если еще не сделали этого.</p>
96
</li>
97
</li>
97
<li><p><a>Создайте новый репозиторий</a>с именем<em>username.github.io</em>, где<em>username</em>- ваш ник на Github.</p>
98
<li><p><a>Создайте новый репозиторий</a>с именем<em>username.github.io</em>, где<em>username</em>- ваш ник на Github.</p>
98
</li>
99
</li>
99
<li><p>Инициализируйте репозиторий в директории с Jekyll: git init</p>
100
<li><p>Инициализируйте репозиторий в директории с Jekyll: git init</p>
100
</li>
101
</li>
101
<li><p>Добавьте remote: git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPO.git</p>
102
<li><p>Добавьте remote: git remote add origin git@github.com:YOUR_USERNAME/YOUR_REPO.git</p>
102
</li>
103
</li>
103
<li><p>Сделайте коммит и отправьте его в github:</p>
104
<li><p>Сделайте коммит и отправьте его в github:</p>
104
-
git add --all git commit -m "Initial commit" git push -u origin master</li>
105
+
</li>
105
<li><p>Через несколько мгновений страница станет доступна по вашему адресу<a>https://YOUR_USERNAME.github.io</a></p>
106
<li><p>Через несколько мгновений страница станет доступна по вашему адресу<a>https://YOUR_USERNAME.github.io</a></p>
106
</li>
107
</li>
107
</ol><p>Это удобный способ работы, но так как сборка происходит на стороне Github, вы не можете управлять этим процессом. К примеру, вы не можете устанавливать любые плагины, Github поддерживает лишь небольшой набор<a>базовых</a>плагинов.</p>
108
</ol><p>Это удобный способ работы, но так как сборка происходит на стороне Github, вы не можете управлять этим процессом. К примеру, вы не можете устанавливать любые плагины, Github поддерживает лишь небольшой набор<a>базовых</a>плагинов.</p>
108
<h3>Публикация на Github Pages без поддержки Jekyll</h3>
109
<h3>Публикация на Github Pages без поддержки Jekyll</h3>
109
<p>Github Pages позволяет размещать любые HTML-файлы и не работать с Jekyll на стороне Github. Это означает, что вы можете просто размещать на Github свою папку _site. Такой способ позволяет вам использовать любые плагины, потому что генерация конечных файлов происходит на вашем компьютере, а Github выступает в роли простого веб-сервера.</p>
110
<p>Github Pages позволяет размещать любые HTML-файлы и не работать с Jekyll на стороне Github. Это означает, что вы можете просто размещать на Github свою папку _site. Такой способ позволяет вам использовать любые плагины, потому что генерация конечных файлов происходит на вашем компьютере, а Github выступает в роли простого веб-сервера.</p>
110
<p>Схема работы идентичная, просто храните в репозитории конечные HTML-файлы вместо Jekyll-проекта.</p>
111
<p>Схема работы идентичная, просто храните в репозитории конечные HTML-файлы вместо Jekyll-проекта.</p>
111
<p>Подробнее о всех вариантах создания размещения сайтов можно узнать на странице<a>pages.github.com</a>.</p>
112
<p>Подробнее о всех вариантах создания размещения сайтов можно узнать на странице<a>pages.github.com</a>.</p>
112
<h3>Подключение своего домена</h3>
113
<h3>Подключение своего домена</h3>
113
<p>Github Pages позволяет подключить сторонний домен. При этом будет работать автоматический редирект 301 с адреса<a>https://YOUR_USERNAME.github.io</a>на ваш домен.</p>
114
<p>Github Pages позволяет подключить сторонний домен. При этом будет работать автоматический редирект 301 с адреса<a>https://YOUR_USERNAME.github.io</a>на ваш домен.</p>
114
<ol><li>Добавьте в репозиторий файл CNAME (без расширения), и внесите в него домен без указания протокола. Например, myblog.com.</li>
115
<ol><li>Добавьте в репозиторий файл CNAME (без расширения), и внесите в него домен без указания протокола. Например, myblog.com.</li>
115
<li>Если используете домен второго уровня, то на стороне своего DNS-провайдера выставьте ему запись типа ALIAS или ANAME со значением YOUR_USERNAME.github.io; или две записи типа A со значениями 192.30.252.153 и 192.30.252.154. Если используете домен третьего уровня, то добавьте ему запись типа CNAME со значением YOUR_USERNAME.github.io. Подробнее о своих доменах в<a>официальной документации</a>.</li>
116
<li>Если используете домен второго уровня, то на стороне своего DNS-провайдера выставьте ему запись типа ALIAS или ANAME со значением YOUR_USERNAME.github.io; или две записи типа A со значениями 192.30.252.153 и 192.30.252.154. Если используете домен третьего уровня, то добавьте ему запись типа CNAME со значением YOUR_USERNAME.github.io. Подробнее о своих доменах в<a>официальной документации</a>.</li>
116
</ol><h2>Дополнительные возможности</h2>
117
</ol><h2>Дополнительные возможности</h2>
117
<p>Всё описанное в этом руководстве касается базовых возможностей и настроек по умолчанию.<a>Официальная документация</a>описывает множество дополнительных возможностей, таких как:</p>
118
<p>Всё описанное в этом руководстве касается базовых возможностей и настроек по умолчанию.<a>Официальная документация</a>описывает множество дополнительных возможностей, таких как:</p>
118
<ul><li>создание "коллекций" постов и страниц</li>
119
<ul><li>создание "коллекций" постов и страниц</li>
119
<li>пагинация</li>
120
<li>пагинация</li>
120
<li>миграция из других блог-платформ</li>
121
<li>миграция из других блог-платформ</li>
121
<li>подсветка кода и поддержка математических формул в постах</li>
122
<li>подсветка кода и поддержка математических формул в постах</li>
122
<li>плагины</li>
123
<li>плагины</li>
123
<li>темы</li>
124
<li>темы</li>
124
<li>теги</li>
125
<li>теги</li>
125
<li>парсинг файлов с данными (YAML, JSON, CSV)</li>
126
<li>парсинг файлов с данными (YAML, JSON, CSV)</li>
126
<li>continuous integration</li>
127
<li>continuous integration</li>
127
</ul><p>А<a>плагины</a>позволяют еще сильнее расширить возможности системы.</p>
128
</ul><p>А<a>плагины</a>позволяют еще сильнее расширить возможности системы.</p>