Антон Рябов bio photo

Антон Рябов

Не люблю бриться и у меня умный взгляд.

Email Twitter Github RSS

У меня часто спрашивают какая “тема” или “движок” используются в данном блоге. Ответить на такие вопросы одним словом или предложением тяжело, поэтому решил написать заметку, чтобы в дальнейшем просто приводить ссылку на нее. Не исключено, правда, что какие-то вещи могут измениться, но если переделаю что-нибудь кардинально, то напишу новую статью.

За время ведения блога, а это уже около 6 лет, Я пробовал разные площадки и “движки”. Ко всем технологиям/сервисам что пробовал, у меня были претензии. Всегда всплывали вопросы кастомизации, комментариев, добавления новых статей, безопасности, интеграции с социальными сетями и т.д. Конечно был вариант написать все с нуля, но в наше время это глупо. В какой-то момент узнал про Jekyll и Github pages и это оказалось спасением. Найти информацию про две эти штуки легко, в том числе и на русском языке. Расскажу только основные моменты.

Jekyll - это генератор статических сайтов, написанный на Ruby. Это значит что на выходе мы получаем просто html+css страницы, которые можно залить на любой хостинг статичесих файлов и сайт будет полностью работоспособным. А github pages позволяет опубликовать такой статический сайт абсолютно бесплатно, в том числе и на кастомном доменном имени, как в моем случае.

Таким образом, я получил полностью настраиваемый блог, который при желании можно “допрограммировать”, для которого не нужно держать сервер или платный хостинг. Итак, что же конкретно Я использую.

Вот содержимое моего gem файла:

source 'https://rubygems.org'

gem 'jekyll'
gem 'jekyll-sitemap'
gem 'octopress'
gem 'jekyll-tagging'
gem 'jekyll-redirect-from'
gem 'pygments.rb'
gem 'jemoji'

jekyll - собственно генератор jekyll-site - модуль для генерации карты сайта octopress - для управления страницами, добавлением, переименованием и т.д. jekyll-tagging - модуль добавляющий функционал тегов jekyll-redirect-from - модуль для добавления редиректов pygments.rb - подстветка синтаксиса jemoji - модуль, который позволяет использовать emoji, но Я ими еще ни разу не воспользовался

Это основа, которая отвечает за генерацию. Следующим моментом является внешний вид. Когда я начал переход на jekyll + github pages больше всего мне понравилась тема - Minimal mistakes. Тогда это была версия 2 и по началу меня все устраивало. Затем Я модифицировал некоторые вещи, а когда тема полностью обновилась, не стал переходить на новую версию. Таким образом сейчас я использую собственный вариант, той старой второй версии.

Все исходные коды блога храню в приватном репозитории, а на github выкладываю только уже сгенерированную версию. Это сделано потому, что в исходниках хранятся черновики. Чтобы внедрить функционал комментариев в таком блоге необходимо использовать сторонние ресусурсы, например комментарии Вконтакте, Facebook или Disqus, последний кстати можно назвать более универсальным. Но современем Я понял, что комментарии в блоге не нужны. Если кто-то захочет прокомментировать вашу статью, он может сделать это (и скорее всего сделает) в одной из социальных сетей. Такой подход меня устраивает.

Также стоит упомянуть про изображения. Все изображения для своего блога, не считая аватара и favicon Я храню на flickr.com. Это дает мне бесплатное хранилище + CDN. Чтобы опубликовать новую статью или какие-либо изменения мне нужно запустить специальный скрипт, который делает всю магию сборки, а затем загружает исходные коды в приватный репозиторий а сгенерированные html + css в публичный.

Итак, плюсы использования jekyll:

  • Отсутсвие базы данных и необходимости содержать сервер
  • Статические сайты быстрые
  • Гибкая конфигурация и расширяемость
  • Бесплатный CDN и защита от атак
  • Ruby

Минусы:

  • Большинство функциональности придется писать на Javascript (как например кнопка наверх)
  • Чтобы обновить блог нужен компьютер, который поддерживает Ruby
  • У Github пока сложности с https, в случае использования собственных доменов
#Root