Юрий Широков

Разбираюсь с Hakyll

25.01.2024

Несколько лет назад я завёл этот сайт просто чтобы разобраться с GitHub Pages. И генератор HTML выбирал по принципу «ну, чтобы было не противно». Под руку первым попался Hakyll — конфигурируется вроде просто, язык симпатичный (хотя Haskell я в то время почти не знал), все нужные возможности вроде есть — пойдёт.

Логотип Hakyll

Haskell я, однако, за это время немного подучил, выражения в конфиге перестали быть заклинаниями, и я понял, что мне интересно возиться с движком.

Не могу сказать, что это самый дружественный к новичку генератор сайтов: что такое моноид, монада и прочие стандартные хаскелевские классы типов для его тонкой настройки лучше знать. Но это очень прикольная игрушка для тех, кто сносно знает Хаскель. Вот, запилил здесь блог — не потому, что мне так уж нужен блог, а потому что возиться с Hakyll весело.

Hakyll неплохо документирован, так что я решил не делать здесь урок «как создать свой статический сайт в Hakyll за 5 минут», их и так уже достаточно. Но исходники этого сайта рекомендую посмотреть, чтобы самостоятельно убедиться в нескольких вещах:

Собственно генератор сайтов это файл site.hs, остальное, по сути — входные данные для него или статический контент, который выкладывается как есть.