Mало кто знает, что Github кроме превосходного хостинга ваших Git проектов
может также хостить ваш персональный сайт.
Например на нем расположен этот блог. В своей первой статье я
расскажу как максимально удобно настроить эту функциональность.
Введение
Для начала вам нужно быть зарегистрированным пользователем Github и уметь
работать с системой контроля версий Git. Предположим вы готовы.
В дальнейшем я буду приводить примеры для своего сайта: klen.github.com
В дальнейшем он будет обновляться при коммитах в удаленный репозиторий.
Использование генераторов статических сайтов
Созданный нами сайт не слишком удобен для работы, трудно писать содержание
используя HTML, сложно поддерживать целостность ссылок. Использовать его
например как блог очень затруднительно.
Существует масса проектов генерации статических сайтов и блогов.
При работе с ними фактически вы пишете страницы и статьи в удобном для вас формате,
а затем генератор обновляет структуру сайта. По-умолчанию Github уже поддерживает
написанный на ruby генератор Jekyll. То есть вам необязательно использовать только
HTML синтаксис, из коробки вы можете писать в ваш сайт на Markdown. Подробнее читайте
в документации Github Pages и Jekyll.
Я предпочитаю генерировать страницы локально и проверять результат без выгрузки
содержания на Github. Мне привычнее работать с Python поэтому в качестве генератора
сайта мной используется Pelican. Ниже я покажу как поставить его и настроить для работы.
Если вы предпочитаете ruby дальше можете не читать.
Установка и настройка Pelican
Предполагается, что вы знакомы с Python и VirtualEnv.
Я использую синтаксис RST, но вы можете использовать Markdown для своего сайта. Просто сохраняйте файлы с расширением *.md
Pelican поддерживает и другие форматы, но надо ставить соответствующие модули.
Опция -o . заставляет Pelican производить сборку статики в корне
проекта.
Если все прошло успешно в корне проекта вы увидите несколько HTML файлов.
Откройте index.html в браузере и посмотрите на ваш сайт.
Автоматизация
Настроим наш сайт и немного автоматизируем рутинные операции.
Подробнее про настройки Pelican, можно прочитать в его документации.
И дадим ему права на исполнение:
Теперь в директории проекта можно вызывать ./.compile и собирать статику даже без активации
виртуального окружения.
Не забудьте сделать его исполнемым.
При каждом коммите изменений в репозиторий, проект будет пересобран автоматически.
На этом нашу предварительную работу по созданию github-сайта можно считать оконченной. В дальнейшем стоит поподробнее прочитать документацию Pelican,
модифицировать стандартную или создать собственную тему оформления и подключить какой нибудь сервис комментариев.
Как нетрудно догадаться исходники этого блога расположены по адресу: http://github.com/klen/klen.github.com
http://klen.github.io/github-blog.html