Haskell的模板包

28

有哪些在Haskell中进行模板编写的首选包。类似于Django模板或PHP。

我不想总是将其与HTML一起使用。它可以是任何其他形式。我想要的大概是一个字符串内插库,还支持循环、过滤器/转义实用程序的注册、if条件等等。


1
不一定。这是为了生成适用于Kindle的.mobi文件的小项目(顺便说一下,它们是HTML和XML文件)。但我有其他用例,其中没有涉及结构化标记语言。 - Ionuț G. Stan
5个回答

32

一些相关的包:

  • Bravo - 静态文本模板生成库
  • chunks - 简单的模板库,具有静态安全性
  • halipeto - Haskell 静态网页生成器
  • hamlet - 类似 Haml 的模板文件,经过编译时检查
  • hastache - Mustache 模板的 Haskell 实现
  • heist - 一个 xhtml 模板系统
  • HStringTemplate - StringTemplate 在 Haskell 中的实现。
  • Interpolation - 多行字符串、插值和模板。
  • PCLT - Show 的扩展: 模板、目录、语言、参数等。
  • press - 面向网络/HTML 生成的文本模板库
  • template - 简单的字符串替换
  • twine - 非常简单的模板语言

感谢提供名单。 Twine 和 Hastache 看起来很不错。 - Ionuț G. Stan

25
根据Hackage流行度统计,迄今为止,前三个最受欢迎的包是(2014年):
  1. (29,000次下载) shakespeare -- 代替hamlet.
  2. (27,816次下载) hamlet -- yesod框架模板
  3. (10,625次下载) heist -- snap框架模板
  4. (7099次下载) HStringTemplate -- 通用模板
您可以在这个问题中了解更多关于这两个系统的情况。

3
注意,这两个术语都是特定于HTML/XML的。 - Antoine Latter
2
实际上,HStringTemplate 仍然以健康的优势领先,拥有 4463 次下载。而且它也不仅限于 html/xml :-) - sclv
谢谢。事实上,我想要比HTML/XML更通用的东西。 - Ionuț G. Stan
2
Hamlet说,它已经被弃用,推荐使用shakespeare - Petr

3

interpolatedstring-perl6提供了一个简单而设计良好的Quasiquoter,可以从包含任意Haskell表达式的模板中生成插值字符串/文本。


3
在我看来设计得相当不错。Bravo是一个很酷的想法,但适合我所需的(循环等),它假定所有参数在某种程度上都是字符串。

1

还有一个karvergithub)包,其他答案中没有提到。作者表示:“它的语法受到Jinja2的启发”,但“它并不像Jinja那样功能齐全或适用于生产环境”。


1
只是想提一下,karver 使用部分函数进行错误处理,因此不适用于用户输入模板的用例。 - Andrew Thaddeus Martin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接