9

我为自己维护了一个学术网站,其中复制了很多我也放入简历的材料。为了避免必须维护相同信息的多个文件,并保持同步,我主要使用 tex 和 bib 文件,我在乳胶中生成我的 cv 并为网站使用 htlatex。

作为一个提高我的 Haskell 知识的项目,我一直在考虑使用基于 Haskell 的静态站点生成器之一来生成我的网站。我很容易找到了几个 hakyll 站点,但只有几个 yst,而且我不清楚 hakyll 旨在解决哪些问题 yst 没有处理。我有兴趣了解人们认为每种方法的比较优势和劣势,以及鉴于我当前的 .tex 和 .bib 文件库,我是否有任何特殊原因可能要从其中一个开始。

4

2 回答 2

11

免责声明:我是 Hakyll 的作者。

Hakyll 为您提供的是基于 pandoc 的 EDSL,它允许您更轻松地指定应如何处理不同的文件。它很像makePandoc 之上的一个专业。它还提供了一些对构建静态网站很有用的其他功能,例如,处理 URL 和 HTML。

我认为 yst 和 Hakyll 之间的主要区别在于,Hakyll 一方面更具可定制性(因为配置只是 Haskell),但也可能更难启动和运行。

于 2014-01-08T13:00:23.420 回答
6

我不知道 hakyll,但是 yst 使用 pandoc ( http://johnmacfarlane.net/pandoc/ ) 并且在将静态站点与 yaml 中的一些动态数据结合起来(例如事件)方面表现出色:它支持 sql像迷你语言一样在模板中插入这些动态数据字段。

Yst 还有助于构建多页网站,单独使用 pandoc 时会有点困难。

但是,我发现在模板中插入 yst 默认不支持的其他元素有点困难(例如,页面本身的目录)。

此外,随着 yaml 元数据块 ( http://johnmacfarlane.net/pandoc/README.html#yaml-metadata-block ) 的出现,pandoc(在后台使用)变得更加强大,它可以让您在底层模板(对我来说,pandoc 已经完全取代了 LaTeX 作为输入格式,因为 pandoc 可以将文件转换为 html 和 LaTeX(以及其他))。

我建议您考虑使用 pandoc 而不是 yst,除非您需要那个迷你 sql 语言功能。

于 2014-01-07T19:15:44.713 回答