November 9th, 2011

glider

github pages

Очень порадовали GitHub Pages. На днях я раздумывал, где бы захостить http://scalamacros.org и в каментах подсказали отличную идею (на самом деле, отличных идей было несколько, но эта оказалась самой простой).

Замес вот какой. Фигачим репозиторий на гитхабе со специальным именем, например: scalamacros/scalamacros.github.com. В него впихиваем странички и прочий контент сайта. При помощи джекилла можно даже сделать кое-какую динамику: пример фида на обновления сайта. Из приятных вещей: джекилл поддерживает не только динамический контент и доступ к переменным из конфигов, но и удобную подсветку пигментами. После этого можно заходить на сайт при помощи урла вида scalamacros.github.com.

Чтобы тестировать сайтец локально используем локальный сервер джекилла: https://github.com/scala/scala.github.com/blob/gh-pages/README.md (для этого ставим gem jekyll и easy_install pygments, после чего запускаем в руте сайта jekyll --server и ломимся на http://localhost:4000/). На винде с этой пигментами придется повозиться, но в итоге у меня все завелось. Из удобств: прописав "auto: true" в _config.yml, мы получаем авторебилд страничек при их изменении.

И еще одна приятность: github pages могут обслуживать сайт с кастомным именем. Для этого надо: 1) пушнуть файлик CNAME в корень репозитория, 2) на DNS сервере в CNAME прописать урл типа scalamacros.github.com, 3) на DNS сервере создать запись типа "A", которая указывает на ip-адрес гитхаба: 207.97.227.245 (ссылаться на конкретный айпишник очень ненадежно, но я не знаю как сделать лучше).

В итоге имеем несложный бесплатный хостинг, который поддерживает такие фичи как: 1) новости/посты, 2) файлы, 3) фиды, 4) каменты (прикручиваются через disqus). Полноценной динамики нет, но кое-что можно сэмулировать джекиллом (те же генерируемые фиды или списки постов). Кроме того, разработка сайта для github pages убийственно проста: клонируем репос, редактируем, проверяем на локалхосте, пушаем - и через пару секунд изменения уже live. Если особенно припрет, можно все сделать в браузере, редактируя странички прямо из гитхабовского веб-интерфейса.