Створюємо свій персональний сайт на github

Mало хто знає, що Github крім чудової хостингу ваших Git проектів може також хостити ваш персональний сайт. Наприклад на ньому розташований цей блог. У своїй першій статті я розповім як максимально зручно налаштувати цю функціональність.

Для початку вам потрібно бути зареєстрованим користувачем Github і вміти працювати з системою контролю версій Git. Припустимо ви готові.

Надалі я буду наводити приклади для свого сайту: klen.github.com

Я вважаю за краще генерувати сторінки локально і перевіряти результат без вивантаження вмісту на Github. Мені звичніше працювати з Python тому в якості генератора сайту мною використовується Pelican. Нижче я покажу як поставити його і налаштувати для роботи.

Передбачається, що ви знайомі з Python і VirtualEnv.

  1. Так як ми будемо використовувати Pelican нам необхідно вимкнути вбудований в Github генератор Jekyll. Це робиться додаванням в корінь сховища файлу .nojekyll.
  1. Тепер створимо і активуємо віртуальне оточення для модулів по сайту:
  1. Встановимо в створений нами VirtualEnv генератор Pelican і необхідний для нього движок шаблонів Jinja2:
  1. Ми будемо тримати вихідні сайту в піддиректорії source. а створені статичні сторінки в корені сховища, щоб Github їх бачив. Створимо файл source / hello.rst з нашої першої статті:

Я використовую синтаксис RST. але ви можете використовувати Markdown для свого сайту. Просто зберігайте файли з розширенням * .md Pelican підтримує і інші формати, але треба ставити відповідні модулі.

Опція -o. змушує Pelican проводити збірку статики в корені проекту.

Якщо все пройшло успішно в корені проекту ви побачите кілька HTML файлів. Відкрийте index.html в браузері і подивіться на ваш сайт.

  1. Тепер наші зміни можна зберегти в Git і відправити на Github.

Налаштуємо наш сайт і трохи автоматизуємо рутинні операції.

  1. Створимо файл настройок нашого сайту source / settings.py:

Детальніше про налаштування Pelican. можна прочитати в його документації.

  1. Для спрощення збірки створимо sh-файл .compile

І дамо йому права на виконання:

Тепер в директорії проекту можна викликати ./.compile і збирати статику навіть без активації віртуального оточення.

  1. Наступним кроком створимо Git хук для автоматичної генерації сайту при коммітов. Створимо і відредагуємо файл .git / hooks / pre-commit:

Не забудьте зробити його ісполнемим.

При кожному Ком змін в репозиторій, проект буде пере-зібраний автоматично.

Схожі статті