Записная книжка     О блоге     Архив записей     Лента

Чтобы самому не забыть и другим рассказать

Работа с предстоящими постами в Jekyll

Вольный перевод статьи.


С тех пор как завел блог, у меня всегда пару постов лежало в черновиках локально на ноутбуке. Не постил, так как хотелось дописать что-то и т.п. Раз даже снес черновики случайно вместе с переустановкой системы. Оказывается рукописи горят, если электронные:).

Ситуация начала напрягать: решил комитить черновики в отдельную папку(по умолчанию jekyll, все что находиться в папке _posts, публикует). Оказалось что у самого jekyll есть ф-ционал для работы с будущими постами, а так же с черновиками.

Три способа:

1) Пост с опцией “published”. Можно добавить строку в метаданые поста, которая обозначает публиковать ли этот пост или нет:

published: true

т.е. пост будет опубликован и виден всем или

published: false

Что бы увидеть локально сгенерированный сайт с “неопубликованными” постами достаточно запустить jekyll с ключем командной строки –unpublished:

    jekyll server --unpublished

2) Будущие посты.

Можно писать посты с будущей датой. Соответсвенно можно писать посты загодя, которые “опубликуются” в то время, которое указано в посте.

Что бы увидеть локально сгенерированный сайт с будущими постами достаточно запустить jekyll с ключем командной строки –future:

    jekyll server --future

Также надо убедиться что есть соотв. настройка в _config.yml, которая будет скрывать “будущие” посты, пока не придет время:

    future: false

3) Посты-черновики.

Наиболее интересный для меня вариант: все, над чем вы работаете, размещается в папке _drafts по такой схеме:

    - _drafts/
      - my-draft-post.md

Что бы увидеть локально сгенерированный сайт с черновиками достаточно запустить jekyll с ключем командной строки –drafts:

    jekyll server --drafts

Также надо убедиться что есть соотв. настройка в _config.yml, которая будет скрывать черновики:

    show_drafts: false

Когда черновик становиться готов - его достаточно переместить с папки _drafts в папку _posts и все.