Mало хто знає, що Github крім чудової хостингу ваших Git проектів може також хостити ваш персональний сайт. Наприклад на ньому розташований цей блог. У своїй першій статті я розповім як максимально зручно налаштувати цю функціональність.
Для початку вам потрібно бути зареєстрованим користувачем Github і вміти працювати з системою контролю версій Git. Припустимо ви готові.
Надалі я буду наводити приклади для свого сайту: klen.github.com
Я вважаю за краще генерувати сторінки локально і перевіряти результат без вивантаження вмісту на Github. Мені звичніше працювати з Python тому в якості генератора сайту мною використовується Pelican. Нижче я покажу як поставити його і налаштувати для роботи.
Передбачається, що ви знайомі з Python і VirtualEnv.
- Так як ми будемо використовувати Pelican нам необхідно вимкнути вбудований в Github генератор Jekyll. Це робиться додаванням в корінь сховища файлу .nojekyll.
- Тепер створимо і активуємо віртуальне оточення для модулів по сайту:
- Встановимо в створений нами VirtualEnv генератор Pelican і необхідний для нього движок шаблонів Jinja2:
- Ми будемо тримати вихідні сайту в піддиректорії source. а створені статичні сторінки в корені сховища, щоб Github їх бачив. Створимо файл source / hello.rst з нашої першої статті:
Я використовую синтаксис RST. але ви можете використовувати Markdown для свого сайту. Просто зберігайте файли з розширенням * .md Pelican підтримує і інші формати, але треба ставити відповідні модулі.
Опція -o. змушує Pelican проводити збірку статики в корені проекту.
Якщо все пройшло успішно в корені проекту ви побачите кілька HTML файлів. Відкрийте index.html в браузері і подивіться на ваш сайт.
- Тепер наші зміни можна зберегти в Git і відправити на Github.
Налаштуємо наш сайт і трохи автоматизуємо рутинні операції.
- Створимо файл настройок нашого сайту source / settings.py:
Детальніше про налаштування Pelican. можна прочитати в його документації.
- Для спрощення збірки створимо sh-файл .compile
І дамо йому права на виконання:
Тепер в директорії проекту можна викликати ./.compile і збирати статику навіть без активації віртуального оточення.
- Наступним кроком створимо Git хук для автоматичної генерації сайту при коммітов. Створимо і відредагуємо файл .git / hooks / pre-commit:
Не забудьте зробити його ісполнемим.
При кожному Ком змін в репозиторій, проект буде пере-зібраний автоматично.