cyberflow_gravatar

Cyberflow

I am linux system administrator.


Navigation
» Home
» Categories
» Code
» XML Feed

Github pages, jekyll и custom plugins

28 Feb 2013 » jekyll

Не секрет, что jekyll отличный движок для блогинга. Так же не секрет, что многие пользователи jekyll используют в качестве хостинга github pages. Однако, как всегда, есть нюансы. В случае с github pages это отсутствие поддержки custom plugins, коих для jekyll имеется в количестве. Есть масса вариантов хостить статику, но в этой статье речь пойдёт о том, как можно продолжать хоститься на github pages и использовать при этом плагины.

Собственно и в этом вопросе не обошлось без вариантов, но лично для себя я выбрал вариант, который предложил Alexandre Rademaker. Суть этого решения заключается в том, чтобы отказаться от генерации статики на стороне github, а генерить её локально. Однако красота метода заключается в том, что при этом все исходные данные продолжают находиться под контролем git-a.

Теперь по сути:

Мы будем использовать branch source для хранения сырых данных и самой начинки jekyll, тогда как в master бранче будет только статика, которая и будет раздаваться по средствам github pages.

Далее предполагается, что у нас уже есть репозиторий на github, где в мастер ветке лежит jekyll и сырые данные без статики. Теперь создаём новый branch:

$ git branch source
$ git push origin source
$ git checkout source

Теперь создаём что нам надо, добавляем плагины и т.п.

$ git status / git add / git commit

Запускаем jekyll:

$ jekyll

Всё готово для выкладки на github pages:

$ checkout master
$ cp -r _site/* . && rm -rf _site/ && touch .nojekyll
$ git status > git add > git commit
$ git push -all origin

В статье используются материалы с сайта: http://arademaker.github.com