Skip to main content

Блог инженера

Блог о минимализме, инжинерии и программировании.



Перевод блога на Jekyll

  | #blogging#Jekyll

Мой блог переезжает уже не первый раз. Даже не второй. У меня были статические страницы на бесплатном хостинге. Потом Wordpress. Потом Drupal и сайт на Drupal ещё “живой”. Потом я завёл Postach.io, чтобы преодолеть “писательский блог” и публиковать незаконченные и плохо оформленные записи, наполовину для себя. Теперь этот блог переезжает на Jekyll и встал вопрос об обычной проблемы с переездом сайтов - новые адреса страниц. Те немногочисленные ссылки, которые ведут на мой сайт поломаются. Поисковые машины перестанут находить страницы по старым адресам, зато найдут новые страницы и будут их заново индексировать. Проблема настолько плоха, что впору отказаться от переезда. Но у Jekyll есть великолепная возможность настраивать адреса страниц с хирургической точностью. Для этого всего лишь нужно добавить в заголовок страницы ‘FrontMatter’ параметр

permalink: /my-address

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

Остаётся ещё вопрос со вставкой иллюстраций к статьям. В Postach.io иллюстрации можно было вставлять прямо в страницы, остальные задачи по их хостингу и вставке в веб-страницы сервис брал на себя. На основном сайте я размещаю иллюстрации в одном из подкаталогов корневой директории сайта. Их можно выгружать вручную, а можно использовать специальный плагин к Drupal для выгрузки иллюстраций.

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

Я выбрал другой способ - размещение иллюстраций в CDN. Я выбрал для себя Cloudinary. Отчасти, из-за того, что есть бесплатный хостинг иллюстраций. Мне этого бесплатного порога должно хватить надолго. Немного напрягает, что при выгрузке иллюстрации Cloudinary добавляет “соль” - случайную строку к названию файла. Так что нельзя просто взять и функцией “поиск и замена” поправить всё начало адреса для хранения иллюстраций. Нужно обработать каждую иллюстрацию вручную. Но с моим размером блога - меня это устраивает.

Другое преимущество CDN перед хостингов иллюстраций на личном сервере - молниеносная загрузка иллюстраций. С Jekyll сайт и так начинает работать быстро, но картинки могли подгружаться заметное время. Теперь же вся страница загружается молненосно.

Минус решения очевиден. Сервис может изменить политику оплаты, закрыться, наконец. И придётся что-то придумывать с хостингом картинок опять. Пока я принимаю это за допустимый риск.

About Mikhail Kiselev

Photo of Mikhail Kiselev

Приветствую в моём блоге! 😄 Меня зовут Михаил. Я инженер и программист. Живу в Израиле. Но мой блог связан с работой в Сибири и на Сахалине, путешествую где придётся. Я предпочитаю пост в блог посту в твиттер. Описание полезной технологии или гаджета предпочитаю описанию заката или посиделок в кафе.