Записная книжка     О блоге     Архив записей     Лента

Чтобы самому не забыть и другим рассказать

Как поднять блог на Github Pages

Первый пост блога, инструкция.


Содержание

Лирика

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

Останавливало два фактора: лень и незнание веб-технологий(и отсутсвие большого желания изучать их). Использовать же современные готовые движки типа Wordpress, Blogger или LiveJournal и иже с ними не хотелось из-за их перегруженности, “вебдванольности”, не подконтрольности мне. Да и большинство функционала, который предлагают современные блоги/дневники, мне не нужно.

И вот тут в очередной раз гуляя по Github я наталкиваюсь на Github Pages. Полчаса чтения и я понимаю — это то что нужно. Суть в чем? Сервис предлагает пользователям Github бесплатный хостинг статических html-страниц для специально созданного репозитория. Простые страницы все же не блог — так какой же от сервиса толк? Там есть генератор удобный, который из пачки шаблонов и простого текста сгенерирует сайт пользователю на радость командой одной — git push — прелесть какая:smile:.

Если коротко, то вот что меня привлекло завести блог на Github Pages:

Установка и настройка окружения

Вместо чтения кучи документации по Jekyll, я нашел крутую репу poole. Как пишет ее автор:

“a clear and concise foundational setup for any Jekyll site. And it has a super minimal look… It does so by furnishing a full vanilla Jekyll install with example templates, pages, posts, and styles.”

Т.е. минимально необходимый набор для запуска блога: форкнул, поменял настройки под себя и пользуешься на здоровье. Правило “Все уже написано до нас!” работает безотказно :) .

demo.getpoole.com — рабочее демо блога:

The demo pool website

Приступим к созданию своего блога:

docker run -ti --rm -v “$PWD”:/usr/src/app -p “4000:4000” starefossen/github-pages

Кастомизация

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

Дефолтная тема poole мне подошла практически идеально. Но захотелось изменить еще некоторые вещи.

Добавил три ссылки вверху:

Для этого я добавил в _config.yml:

pages_list:
  О блоге: '/about'
  Архив записей: '/archive'
  Лента: '/atom.xml'

И модифицировал шаблон _layouts/default.html:

<h3 class="masthead-title">
    <a href="/" title="Home">{{ site.title }}</a>

    {% for page in site.pages_list %}
      &nbsp;&nbsp;&nbsp;
      <small><a href="{{ page[1]  }}">{{ page[0] }}</a></small>
    {% endfor %}

    <p> <small>{{ site.tagline }}</small> </p>
</h3>

Еще оказалось что с нуля нет поддержки тегов, что есть не классно:open_mouth:. Для Jekyll есть отдельный плагин, который реализует теги, но в нашем случае это не подходит, так как тот Jekyll, который крутится на серверах Github, нельзя кастомизировать плагинами. Памятуя о правиле “Все написано до нас”, я полез в Google и спустя 5-ть минут решение найдено. Расписывать много не хочется, решение полностью скопировано, для наглядности будет удобно посмотреть diff. А именно файлы poole.css, index.html, post.html и tags.html.

Честно говоря я ни грамма не понял, что я за магию сделал, для того что бы теги заработали(что взять с С++ разработчика?:stuck_out_tongue_winking_eye:), но все получилось и работает так как мне нужно. Вот, что крест животворящий свободный софт делает!:smile:

Итоги

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

Ссылки