easimonenko Evgeny Simonenko

Hakyll. Использование с Git

11 Aug 2013 |  Tutorial  |  Hakyll   Git   Static Site Generators   Web Development  

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

Замечание первое

Итак, если Вы работаете с Hakyll, то практичнее будет создать локальную копию репозитория не в папке _site дерева каталогов проекта сайта, а в отдельной папке, куда нужно будет скопировать файлы из папки _site. К чему эти сложности? К тому, что по разным причинам бывает нужно проделывать команду

site clean

которая, в частности, удаляет каталог _site.

Чаще всего это бывает при внесении изменений в site.hs.

Чтобы в репозиторий отправлялись только изменённые файлы, копируйте только их. В противном случае Git будет считать, что изменились все файлы, так как при замене файл создаётся заново, а не переписывается.

Замечание второе

Если Вы генерируете сайт с помощью Hakyll (а впрочем не важно с помощью какой системы именно), то почему бы не хранить исходные тексты сайта также на Git-сервисе, только в отдельном репозитории? Последовательность работы с репозиторием будет точно такой же, только на имя репозитория уже не будет накладываться никаких ограничений. Есть только один нюанс. Так как при работе с Hakyll в дереве проекта сайта создаются различные временные файлы, то нужно git как-то объяснить, что это не файлы репозитория. Делается это очень просто: создайте в корне папки репозитория проекта файл .gitignore и заполните его строками:

*.*~
*.exe
*.hi
*.o
_site
_cache
site

Пока всё!

(c) Симоненко Е.А., 2013

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

Информация в этом произведении, включая также изображения и фрагменты программного кода, предоставляется как есть, без какой либо гарантии и обещания пригодности для чего либо. Автор не несёт ответственность за любой ущерб, возникший в результате использования данного произведения.

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