Каковы сравнительные преимущества и недостатки статических генераторов веб-сайтов yst и hakyll?
Я поддерживаю академический веб-сайт для себя, который дублирует много материала, который я также помещаю в мое резюме. Чтобы избежать необходимости поддерживать несколько файлов с одной и той же информацией и поддерживать синхронизацию, я в основном использую файлы tex и bib, генерирую свое резюме в латексе и использую htlatex для веб-сайта.
Как проект по улучшению моих знаний о Haskell, я задумал создать свой сайт с помощью одного из генераторов статических сайтов на основе haskell. Я легко нашел несколько сайтов Hakyll, но только несколько YST, и мне не ясно, какую проблему HAKYLL был разработан для решения этой проблемы, которая не решалась YST. Мне интересно узнать, что люди видят в сравнительных преимуществах и недостатках каждого из них, и если есть какая-то конкретная причина, по которой я мог бы начать с того или другого, учитывая мою текущую базу файлов.tex и.bib.
2 ответа
Отказ от ответственности: я автор Hakyll.
Hakyll дает вам EDSL поверх pandoc, который позволяет вам более легко указать, как должны обрабатываться разные файлы. Это очень похоже на специализированный make
на вершине Пандока. Он также предлагает некоторые другие функции, которые полезны для создания статических веб-сайтов, например, манипулирование URL-адресами и HTML.
Я думаю, что основное различие между YST и Hakyll заключается в том, что Hakyll с одной стороны более настраиваемый (поскольку конфигурация просто Haskell), но, вероятно, также сложнее в настройке и запуске.
Я не знаю о hakyll, но yst использует pandoc ( http://johnmacfarlane.net/pandoc/) и великолепно сочетает статический сайт с небольшим количеством динамических данных в yaml (например, события): он поддерживает sql как мини-язык, чтобы вставить эти динамические поля данных в шаблон.
Yst также помогает создавать многостраничный веб-сайт, что немного сложнее, если использовать только pandoc.
Однако мне было немного сложно вставить в шаблон другие элементы, которые по умолчанию не поддерживаются yst (например, оглавление для самой страницы).
Кроме того, pandoc (используется в фоновом режиме) стал намного более мощным с появлением блока метаданных yaml ( http://johnmacfarlane.net/pandoc/README.html), который позволяет вставлять практически все в базовый шаблон (для меня pandoc полностью заменил LaTeX в качестве входного формата, поскольку pandoc может конвертировать файлы как в html, так и в LaTeX (среди прочих)).
Я бы посоветовал вам рассмотреть возможность использования pandoc вместо yst, если вам не нужна эта функция языка mini sql.