Создание блога на Octopress 3

Егор Смоляков специально для Типичного программиста

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

Многие программисты, в частности хакеры, знают, что такое Octopress и им не нужно его представлять, а для незнающих поясню: это движок, который генерирует HTML-страницы. Он построен на популярном инструменте Jekyll и использует его возможности на полную.

Установка, запуск и остановка

Для установки можно пойти традиционным путем, установив Ruby, Node.js, а потом загрузить Octopress 3 из Ruby Gems:

Но я сделал проще для других и себя, а именно создал Docker-контейнер, который разместил на Docker Hub. Как установить Docker можно прочитать в официальной документации. Далее, будем считать, что он установлен и готов к работе, то есть работает команда docker.

Вы можете клонировать проект с Github’a или скачать архив базового шаблона Octopress 3.

После ввода последней команды Docker скачает собранный мной образ и запустит контейнер. Проверить его наличие в запущенных можно командой sudo docker ps. Откройте браузер и вставьте ссылку http://127.0.0.1:4000. Должна отобразиться базовая страница блога без постов.

Чтобы их добавить, можно зайти через SSH в контейнер и воспользоваться стандартными командами Octopress (запомните, что права доступа для нового файла будут у root‘a):

Или создать в папке source/_posts файл нового поста. Рекомендую сперва воспользоваться первым вариантом и создать пример поста, чтобы увидеть его структуру.

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

Чтобы остановить, а если точнее, удалить контейнер (просто операции создания и удаления контейнера выполняются быстрее, чем остановки и запуска), выполните команду:

Публикация на Github Pages

Чтобы ваш блог был доступен другим пользователям, его можно разместить на хостинге. Сервис Github предоставляет возможность бесплатно размещать файлы на своём домене вида логин.github.io. Для этого достаточно создать репозиторий с таким именем.

Далее дело за малым, коммитим и пушим в него наш сгенерированный сайт:

Замечу, что в папке source есть файл .gitignore, который не добавляет папки _site — сгенерированные файлы блога — и .sass-cache — кэш SASS-файлов. Дело в том, что Github Pages поддерживает Jekyll и генерация происходит автоматически, но мы можем коммитить только папку _site и отправлять её содержимое, но разницы нет.

Автоматизируем команды

Каждый раз вводить команды запуска, остановки или отправки на хостинг довольно утомительно, поэтому правильным решением будет написать файл Makefile, который это дело сведет до ввода двух команд:

Теперь все очень просто:

Послесловие

По умолчанию для генерации текстов используется kramdown, но он не позволяет удобно подсвечивать программный код. Можно изменить библиотеку на redcarpet в файле source/_config.yml. Кстати, в нем находятся и другие настройки блога.

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

Источник: «Создание блога на Octopress 3»