Структура каталогов
Jekyll по своей сути это движок трансформации текста. Его концепция состоит в следующем: вы передаете текст написанный в выбранном вами формате Markdown (Markdown, Textile и т.д.) или в чистом HTML, а Jekyll форматирует его в соответствии с файлами шаблонов. В ходе этого процесса вы можете настроить как будут выглядеть URL вашего сайта, какие данные будут отражаться в макете и многое другое. Все это делается путем редакции текстовых файлов , финальным продуктом является статический сайт.
Базовый сайт на Jekyll выглядит примерно так:
.
├── _config.yml
├── _data
| └── members.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-why-every-programmer-should-play-nethack.md
| └── 2009-04-26-barcamp-boston-4-roundup.md
├── _sass
| ├── _base.scss
| └── _layout.scss
├── _site
├── .jekyll-metadata
└── index.html # can also be an 'index.md' with valid YAML Frontmatter
Структура каталогов сайтов на Jekyll с использованием тем, поставляемых в гемах
Начиная с Jekyll 3.2, новые проекты, создаваемые с помощью команды jekyll new
используют для задания внешнего вида сайта темы, поставляемые в гемах . Это ведет к облегченной структуре каталогов по умолчанию: каталоги _layouts
, _includes
и_sass
хранятся в геме темы. Текущая тема по умолчанию minima, команда bundle show minima
покажет, в каком каталоге на вашем компьютере хранятся файлы этой темы.
А вот обзор основных файлов и каталогов:
Файл/каталог | Описание |
---|---|
_config.yml | Хранит конфигурационные данные. Многие из этих опций могут быть заданы в командной строке, но удобнее сразу определить их в файле и не запоминать. |
_drafts | Черновики это неопубликованные посты. Формат этих файлов не включает дату: title.MARKUP . Они описаны в документации. |
_includes | Это фрагменты, которые могут использоваться многократно в ваших постах и шаблонах. Например, тег liquid {% include file.ext %} подключает фрагмент _includes/file.ext . |
_layouts | Это макеты, используемые для оформления постов. Макеты выбираются в постах на основе вводных YAML, которые мы обсудим позднее. Тег liquid {{ content }} используется для вывода контента на страницу |
_posts | Ваш динамический контент. Важно правильное именование этих файлов в следующем формате: YEAR-MONTH-DAY-title.MARKUP . Постоянные ссылки для каждого файла можно настроить, но дата и язык разметки должны быть определены в имени файла. |
_data | В этом каталоге располагаются правильно отформатированные данные сайта. Движок Jekyll автоматически загружает все файлы yaml (с расширениями .yml или .yaml ) из этого каталога и делает их доступными по всему сайту. Например, файл members.yml из этого каталога будет доступен через site.data.members . |
_site | В этом каталоге хранится собранный сайт на Jekyll. Этот каталог стоит добавить в ваш файл .gitignore . |
.jekyll-metadata | Технический файл, помогающий Jekyll отслеживать, какие файлы не были изменены с момента последней сборки, а какие нуждаются в регенерации. Он не включается в собранный сайт, лучше всего сразу включить его в .gitignore . |
index.html и прочие файлы HTML, MD и textile | При условии наличия в таком файле вводной YAML, он будет обработан Jekyll. Это также относится ко всем файлам .html , .markdown , .md или .textile в вашем корневом каталоге или в другом каталоге, не указанном здесь. |
Остальные файлы/каталоги | К этой категории относятся все остальные каталоги и файлы, не перечисленные выше, такие как каталоги css и images , файлы favicon.ico и т.д. Все они будут скопированы в собранный сайт. Примеры сайтов на Jekyll собраны здесь. |