Многие знают, что на гитхабе можно хостить статические сайты. Однако вряд ли всем известно, что там из коробки идет генератор статического сайта — Jekyll. Идея довольно прикольная: выбрал тему и/или задал несколько шаблонов, а потом клепаешь посты в markdown, не парясь о разметке и всем таком. Запушил посты в GitHub — и они уже опубликованы.

Однако есть нюансы. Как только надо что-то сделать что-то нетривиальное, приходится “преодолевать”. Например, я столкнулся со следующими проблемами:

  1. На GitHub Pages белый список плагинов, а некоторые встроенные - не очень (например, пагинация работает только для одного раздела). Это можно решить, генерируя сайт на своем компе, но тогда теряется все удобство использования связки jekyll и GitHub.
  2. В шаблонизаторе Liquid нет логического отрицания. Там есть конечно конструкция unless, дополняющая if, но какое-нибудь (a && !b) || (!a && b) там фиг выразишь. При этом and и or есть.
  3. Иногда парсер markdown ломается, особенно если его перемешать с html-тегами. И где-то для этого используются регулярки, судя по исключениям, которые я ловил.

И еще была пара мелочей. Несмотря на это, копаться в этом было занимательно, у меня даже что-то получилось. Идея мне нравится, это правильный web в моем понимании, когда для статической инфы у тебя статический сайт, а не 10 Гб node-js модулей и не какое-нибудь адище. И клево, что контент почти полностью отделен от представления (этим мне еще Latex нравился). Но с точки зрения кода из-за ограничений GitHub Pages и jekyll получилось конечно классическое.