Пакеты Templating для Haskell
Каковы некоторые предпочтительные пакеты для шаблонов в Haskell. Нечто похожее на шаблоны Django, или PHP.
Я не хочу всегда использовать его с HTML. Это может быть любая другая вещь. Я предполагаю, что я хочу, это библиотека строковой интерполяции, которая также поддерживает циклы, регистрацию утилит фильтрации/запуска, если условия и т.д.
Ответы
Ответ 1
Согласно статистике популярности Hackage, верхними тремя пакетами, безусловно, являются (2014):
- (29 000 загрузок) shakespeare - замена для деревушки.
- (27 816 загрузок) hamlet - шаблон шаблона Yesod
- (10,625 загрузок) heist - привязка шаблонов шаблонов
- (7099 загрузок) HStringTemplate - шаблоны общего назначения
Вы можете увидеть больше об этих двух системах в этом вопросе.
Ответ 2
Некоторые связанные пакеты:
- Bravo - Библиотека генерации статического текста
- chunks - Простая библиотека шаблонов со статической безопасностью
- halipeto - Генератор веб-страниц Haskell Static
- hamlet - файлы шаблонов, похожие на Haml, которые проверяются во время компиляции
- hastache - реализация шаблонов усов Haskell
- heist - Система шаблонов xhtml
- HStringTemplate - реализация StringTemplate в Haskell.
- Interpolation - Многострочные строки, интерполяция и шаблоны.
- PCLT - Расширение для показа: шаблоны, каталогизация, языки, параметры и т.д.
- press - Текстовая библиотека шаблонов, ориентированная на создание веб-сайтов/HTML
- template - простая подстановка строк
- twine - очень простой язык шаблонов
Ответ 3
hastache кажется довольно хорошо разработанным imo. Браво - это классная идея, но подходит для того, что я хочу (петли и т.д.), И он предполагает, что все параметры являются, так или иначе, строками.
Ответ 4
interpolatedstring-perl6 предоставляет простой и хорошо продуманный Quasiquoter для создания интерполированной строки String/Text из шаблонов, содержащих произвольные выражения Haskell.
Ответ 5
Существует также karver (github), не упомянутых в других ответах. Автор говорит, что "его синтаксис сильно вдохновлен Jinja2", но "он не настолько полнофункциональный или готовый, как Jinja".