Темы
Эта возможность еще не реализована!
В Jekyll 3.0 и 3.1 нет возможности устанавливать темы таким образом. Вся документация ниже относится к невыпущенной версии и не может быть использована в настоящий момент.
В Jekyll есть обширная система темизации, позволяющая использовать поддерживаемые сообществом шаблоны и стили для кастомизации внешнего вида вашего сайта. Пакет с темой Jekyll включает макеты, подключаемые фрагменты и стили таким образом, что вы всегда можете их переписать.
Установка темы
-
Для установки темы вам надо добавить гем с ее названием в
Gemfile
вашего сайта:gem 'my-awesome-jekyll-theme'
- Сохраните изменения в
Gemfile
. - Запустите команду
bundle install
для установки темы. -
Наконец, активируйте тему, внеся ее в
_config.yml
вашего сайта:theme: my-awesome-jekyll-theme
В Gemfile
мы можете подключить сколько угодно тем, но выбрать в _config.yml
для использования на сайте можно только одну.
Переписывание значений темы по умолчанию
В темах Jekyll заданы дефолтные макеты, подключаемые фрагменты и стили, все это можно переписать. Например, если в выбранной теме есть макет страницы page
, вы можете изменить раскладку в этом макете создав свой макет page
в каталоге _layouts
(т.е. _layouts/page.html
).
При запросе любого файла Jekyll перед обращением к файлам темы будет искать его в следующих каталогах вашего сайта:
/_layouts
/_includes
/_sass
Более подробную информацию по выбранной теме найти в ее репозитории.
Создание темы
Темы Jekyll распространяются как модули Ruby. Единственный обязательный файл это Ruby Gemspec. Вот образец минимального Gemspec для темы my-awesome-jekyll-theme
, сохраненного как /my-awsome-jekyll-theme.gemspec
:
Gem::Specification.new do |s|
s.name = '<THEME TITLE>'
s.version = '0.1.0'
s.license = 'MIT'
s.summary = '<THEME DESCRIPTION>'
s.author = '<YOUR NAME>'
s.email = '<YOUR EMAIL>'
s.homepage = 'https://github.com/jekyll/my-awesome-jekyll-theme'
s.files = `git ls-files -z`.split("\x0").grep(%r{^_(sass|includes|layouts)/})
end
Макеты и подключаемые фрагменты
Макеты и подключаемые фрагменты в теме работают также, как они работают на любом сайте Jekyll. Поместите макеты в каталог /_layouts
вашей темы, а подключаемые фрагменты в /_includes
.
Например, если в теме есть файл /_layouts/page.html
, а он указан во вводной страницы (layout: page
), Jekyll будет искать его сначала в каталоге _layouts
сайта, и только если файл там не будет найден, будет использоваться макет там
из вашей темы.
Стили
Таблицы стилей вашей темы должны размещаться в каталоге /_sass
, также как и на обычном сайте Jekyll. Стили темы могут подключаться из пользовательских таблиц стилей с помощью директивы @import
.
Документирование темы
Ваша тема должна включать файл /README.md
, объясняющий как авторы сайтов могут установить и использовать тему. Какие макеты имеются, какие фрагменты подключаются, нужно ли добавлять что-либо в конфигурацию сайта — все эти вопросы надо осветить.
Добавление скриншота
Темы отвечают за внешний вид. Покажите пользователям, как выглядит ваша тема, включив скриншот (в файле /screenshot.png
) в репозиторий вашей темы, откуда он может быть извлечен программным путем. Вы также можете включить этот скриншот в документацию вашей темы.
Предпросмотр темы
Для предпросмотра темы в ходе разработки может быть полезно использование тестового контента, например, файлов /index.html
и /page.html
. Это позволит вам использовать команды jekyll build
и jekyll serve
и просматривать вашу тему как и обычный сайт на Jekyll.
Если вы просматриваете тему локально, убедитесь, что вы не забыли добавить каталог /_site
в .gitignore
, чтобы предотвратить попадание скомпилированного сайта в дистрибутив темы.
Публикация темы
Темы публикуются на RubyGems.org. Вам понадобится аккаунт RubyGems, который вы можете завести бесплатно.
-
Сделайте пакет из вашей темы, выполнив следующую команду (заменив
my-awesome-jekyll-theme
на название своей темы).gem build my-awesome-jekyll-theme.gemspec
-
Затем отправьте пакет с темой на сервис RubyGems с помощью еще одной команды ( опять заменив
my-awesome-jekyll-theme
на название своей темы):gem push my-awesome-jekyll-theme-*.gem