Недостатки Jekyll

10 November 2013 #jekyll #web

В 2011 году я перешел на использование Jekyll. Прошло уже более двух лет, и могу констатировать что данный движок мне нравится. Ну почти…

Нравится тем, что на выходе получаю готовый статический сайт, который я могу разместить на любом, самом дешевом (в том числе и бесплатном) хостинге. При этом под контролем остается абсолютно все, включая оформление, содержание страниц, используемые технологии.

Подобных движков на сегодняшний день уже довольно много, и некоторые из них уже превосходят Jekyll по возможностям, но сейчас речь пойдет не об уникальности, а о том, какие проблемы приносит с собой использование подобных генераторов.

Странно, да? Везде пишут только о преимуществах Jekyll, а тут вдруг речь заходит о каких-то недостатках, разве может такое быть?? Увы, да.

Проблемы

1. Ruby

Jekyll – это движок, который написан на Ruby и использует данный интерпретатор для своей работы. То есть для того, чтобы сгенерировать сайт на своем компьютере, потребуется предварительно установить и настроить Ruby со всеми необходимыми пакетами. Плюс ко всему, если используется Windows 64bit, установить и использовать Ruby безболезненно уже не получится.

Ruby великолепный и очень красивый язык, это бесспорно, но его самая большая проблема заключается в том, что это интерпретатор. И все программы, написанные на Ruby, требуют для запуска наличие самого языка со всеми используемыми библиотеками.

2. Изображения

Если вы планируете использовать изображения в своих статьях, приготовьтесь к сложностям.

Необходимо будет заранее подготовить все изображения, создав по две копии, одна для превью, другая – само изображение. Затем оптимизировать их для веба, максимально уменьшив размер файла без потери качества. И только затем разместить на своем сайте или загрузить на сервера Cloudfront.

3. Загрузка готового сайта на сервер

Как бы это странно не звучало, но да. И деплой результата генерации так же представляет собой проблему.

Если работать всегда с одного и того же компьютера, то об этом и не будешь задумываться. Но стоит попытаться работать с различных компьютеров, да еще с различными операционными системами… Это становится настоящей головной болью.

Произвести генерацию на локальном компьютере это только полдела. Необходимо еще передать результат генерации на сервер. Использовать для этого rsync/ssh? Постоянно носить с собой ключи проблематично, а открывать доступ по паролю или по ftp – не безопасно.

Варианты решения

Перенос генерации сайта на сервер

Можно Ruby и все необходимые Gem установить на свой сервер или же использовать для генерации Github. Затем настроить или hook на Git, который будет запускать генерацию при комите, или же запускать вручную генерацию после появления новых файлов.

Перенос генерации сайта на сервер позволит использовать любой компьютер для обновления контента сайта, вне зависимости от того, установлен ли там Ruby или нет. Но на этом все преимущества и заканчиваются.

Использование prose.io как редактора файлов

Если возникают сложности с передачей файлов не сервер, почему бы не перенести создание и редактирование файлов на сам сервер??

К примеру, prose.io позволяет создавать и редактировать файлы в репозитории Github напрямую. После сохранения файла, которое сопровождается комитом, может запускаться хук по генерации сайта уже на нашем сервере.

При этом все еще остается проблема передачи изображений/файлов на сервер.

Итоги

Если работа над сайтом осуществляется всегда с одного и того же компьютера, или с заранее подготовленных машин, то особых проблем при работе с Jekyll не будет. Но стоит только попытаться работать со своим сайтом со сторонних машин, начинаются такие проблемы, что продолжать работать просто отпадает желание.

Если перенести генерацию сайта на сервер, это несколько упрощает ситуацию, но, во-первых, нужно иметь такой сервер, на котором нужно будет произвести установку и настройку Ruby, и во-вторых, за сервер нужно будет платить. Стоит ли оно того?

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

Когда вспоминаешь, как организована работа с текстом или изображениями в том же Wordpress, становится грустно. Уходили с Wordpress, чтобы получить большую производительность, и иметь возможность размещать сайта на любом сервере, а в итоге получили массу других проблем. При решении которых опять возвращаемся к сложной и дорогостоящей инфраструктуре.

Может стоит обратить внимание на другие решения? Что-то типа нового Ghost, который в скором времени будет предоставлять возможность создания блогов на их серверах, или Squarespace, предоставляющие свою собственную платформу, или Medium от создателей Twitter?

На данный момент окончательного решения проблемы я пока не вижу.