Создание сайта(блога) на GitHub Pages
О создании этого блога.
По некоторым причинам искал платформу для создания блога. Из условий была простота использования и бесплатность. Выбор пал на GitHub Pages в надежде получить все из коробки и не ковыряться в разметке и javascript. После создания репозитория и подключения первой понравившейся темы стало понятно что без кастомизации не обойтись.
GitHub Pages использует Jekyll, написанный на Ruby. Все советуют поставить Ruby и Jekyll на локальную машину, выкачать репозиторий понравившейся темы и начинать настройку на локальной машине. Поскольку Ruby я не пользовался, то решил найти альтернативу. Сначала подцепил готовую тему, но в ней не было примеров создания постов.
Я выкачал репозиторий и попытался начать разработку на связке Pelican и Python. Сгенерированный сайт выглядел слишком сыро и я решил не выпендриваться и сделать так как все.
Инструкция для Windows
Ставим Ruby: Добавляем ruby в PATH и ставим MSYS2 (всё опционально при установке).
MSYS2 уже стоял и я этот шаг пропустил.
Запускаем cmd или Ruby cmd и ставим Jekyll:
gem install jekyll
Он выпадает с кракозяблами. Меняем в консоли кодировку:
chcp 65001
make: x86_64-w64-mingw32-gcc: Команда не найдена
make: *** [Makefile:242: ruby_http_parser.o] Ошибка 127
Открываем MSYS2 cmd и ставим gcc:
pacman -S mingw-w64-x86_64-toolchain
В нем выбираем mingw-w64-x86_64-gcc. Дожидаемся установку и идем на настройку
Инструкция для Linux
Ставим Ruby и RubyDev:
sudo apt-get install ruby ruby-dev
Ставим Jekyll:
sudo gem install jekyll
Он ругается на Bundler. Ставим Bundler:
sudo gem install bundler
Настройка среды
По желанию ставим дефолтные темы либо пакеты от которых зависит выбранная нами тема. Сначала я использовал коробочную:
sudo gem install jekyll-theme-hacker
Потом нашел расширенную на ее основе:
git clone https://github.com/tocttou/hacker-blog.git
Для нее ставим зависимости. Они прописаны в _config.yml
:
sudo gem install jekyll-seo-tag
sudo gem install jekyll-paginate
sudo gem install jekyll-sitemap
Объеденияем всё со своим репозиторием и переходим в него.
Указываем свои данные в _config.yml
. Чистим папку _posts
и наполняем блог своими постами по аналогии с содержимым.
Запускаем тестовый сервер на http://localhost:4000
:
jekyll serve
Всё готово! Можно закоммитить в свой репозторий.
Тюнинг
Подправляем header и footer в _incudes/
. Там лежат настраиваемые куски html вставляемые во время генерации в index.html
.
Содержания этого файла мне как раз и не хватало в стандартной теме, а разбираться в принципах работы я не хотел принципиально. Но это в любом случае придется сделать, как и вспомнить основы html, шаблонов и не дай бог javascript.
В _layouts/
лежат шаблоны для генерации контента. Смесь html и Liquid.
В _saas assets и css
лежат файлы отвечающие за внешний вид.
После создания первого поста пришлось изменить в index.html
:
<p>{{% post.content | strip_html | truncatewords:50 %}}<p>
на
<p>{{ post.excerpt | strip_html | truncatewords:50 }}</p>
для того чтобы на превью поста отображался только первый абзац.
Предыдущую строчку можно отобразить только при помощи:
{% raw %}
тега.
Выводы
- Если вы новичок, используйте готовый шаблон. Особенно если не знаете Ruby.
- Используйте локальную разработку, чтоб видеть ошибки. Например если неправильно назовете файл поста. GitHub не покажет вам ошибки сборки, а пришлет их на почту.
- Из коробки дается самый минимум, но небольшого тюнинга достаточно для старта.