问题标签 [hakyll]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
135 浏览

haskell - Hakyll 模板中的标签列表字段

因此,Hakyll 已经tagsField可以添加到模板中,但它会将整个标签列表预先格式化为 HTML 字符串。我可以编写一个 custom tagsField,但我想将我的关注点分开:让 Hakyll 为每个页面构建一个标签列表,然后将其传递给 a 中的模板,listField以便我可以在那里用一个$for(tags)$ ... $tags$ ... $endfor$块引用它。

我对 Hakyll 很陌生,而且总的来说还是 Haskell 的新手,所以我不太清楚我的函数的类型。对此方向的任何帮助表示赞赏。

0 投票
1 回答
74 浏览

haskell - 使用外部库时如何适应 IO 类型

我正在尝试 Hakyll,但无法将 IO 类型融入 Hakyll 编译过程。这是教程中的示例 Hakyll 代码。

我想查看匹配目录中的本地化文件列表(en.md、fr.md、...)并生成可用语言列表,我将使用它来生成用于重定向到翻译的 url。我认为这个逻辑必须放在$1.

它是文件操作,所以它产生IO [FilePath]. But $1is inside Hakyll.Compilermonad,它是在Hakyll.RulesIOmonads 内部计算的。不知何故,我需要处理IO类型以在库作者设置的类型签名中工作。有什么好方法可以做到这一点?

我能想到的其他一些实现可以避免访问文件系统和生成IO类型,但如果可能的话,我想这样做。另外,我想深入了解这一点,因为它看起来像是我在编写 Haskell 时可能经常遇到的一种问题。

0 投票
1 回答
87 浏览

haskell - 如何协调`hakyll`和`hakyll-images`之间的类型

我正在尝试使用hakyllhakyll-images实现hakyll-images自述文件中的一个示例,该示例执行我需要做的图像缩放。给定示例的类型不统一,我正在寻求有关如何进行的建议。

hakyll-images自述文件中的失败示例如下。

尝试编译会报错:

错误是因为Image由 定义的typeloadImage必须compile是 typeclass 的实例Writablehakyll从 hackage 文档中复制的和使用的函数类型hakyll-images如下所示。

Image定义hakyll-imagestype Image = Image_ ByteString。我不确定是什么Image_;它的定义未在该Hakyll.Images模块的文档中链接。

无论如何,hakyll-images由于Image不是Writable. 我想知道是否可能hakyll-images包在某些时候变得不同步hakyll导致示例不再编译。

这个评估似乎正确吗?您对我如何解决解决方案有什么建议?

我正在考虑:

  • 通过hakyll-images以某种方式WritableImage.
  • 使用其他一些功能集或组合来执行保持纵横比的图像缩放。
  • 放弃hakyll-images并寻找其他方式来缩放图像。
0 投票
1 回答
289 浏览

haskell - 是否可以将 asciidoc 与 hakyll 一起使用?

我按照本教程使用 hakyll 创建了一个基本的静态网页。它包括许多从目录中的 markdown 呈现的页面posts,例如2015-08-12-spqr.markdown.

我更喜欢 asciidoc 而不是 markdown,并尝试将 asciidoc 添加2018-01-23_adoc-user-manual.asciidocpost目录中。但是,hakyll尝试编译页面时会引发错误:

这是pandocCompiler无法处理的问题asciidoc吗?可以asciidochakyll吗?

0 投票
0 回答
81 浏览

haskell - 使用 let 语句时,Hakyll 代码段无法编译

我在玩 Hakyll 并试图理解为什么它不能编译我在下面的代码片段中使用 let 语句的原因:

我在这里尝试做的只是编译简单的 index.html 模板。对我来说似乎很奇怪的是,当我删除 let 语句时它不会编译。然后 GHCi 开始抱怨:

据我所知, let 语句不应该以任何方式推断行为,因为indexCtx它甚至没有在其他地方使用。

0 投票
2 回答
783 浏览

haskell - 如何在 Nix 中制作这个 Haskell 开发环境?

我正在尝试为仅具有依赖项的 Web 项目创建 Haskell 开发环境hakyllblazeclay。只是,粘土似乎无法建造,抱怨说Setup: Encountered missing dependencies: hspec >=2.2.0 && <2.6, hspec-discover >=2.2.0 && <2.6,我似乎无法克服这一点。

我尝试cabal2nix . --shell > shell.nix在这个 cabal 文件上运行:

但是我遇到了缺少依赖项的问题。有任何想法吗?

编辑:这是我使用 cabal2nix 从上面生成的 shell.nix:

这就是我一直在尝试修改它的方式,以便它覆盖 Clay:

但我显然做错了什么,因为我得到:error: cannot auto-call a function that has an argument without a default value ('haskellLib').

0 投票
1 回答
278 浏览

metadata - 从 Hakyll 中的元数据创建列表字段

我正在尝试为 Hakyll 中元数据中有versions条目的帖子生成 HTML。例如,一篇文章可能versions: Python 3.4, pytest 1.5.2会在文章底部很好地格式化。

为此,我想创建一个上下文来加载元数据并创建一个ListField. 类似于以下存根:

在我的post.html模板中,我有:

然而,我尝试了许多不同的定义,versionsCtx并在网上找到了类似的尝试。似乎没有任何工作,并且帖子总是以“失败......”呈现。我究竟做错了什么?

编辑:用建议和说明更新问题。

0 投票
1 回答
285 浏览

haskell - Hakyll 教程出错了

我正在关注https://jaspervdj.be/hakyll/tutorials/01-installation.html中的 Hakyll 教程。

但似乎有什么不对劲,我不知道是什么。当我运行“stack init”时,我收到了这条消息。

我的路径似乎正确包含在内。为什么会这样?

0 投票
1 回答
39 浏览

hakyll - 标签页面上的自定义内容

我已设置 Hakyll 以从博客文章中生成基本标签页面,如下所示:

我希望能够为每一页提供一个可选的序言。

为此,我希望在preambles目录中的每个标签都有一个降价文件,并在构建标签页面时尝试使用这些文件。但是,我不知道如何使它成为可选的,因为loadSnapshot如果fail没有找到。

这是一种合适的方法吗?如果是,我将如何处理丢失的数据?

另外,我不确定这bodyField是将数据传递给模板的适当方式。

0 投票
1 回答
87 浏览

haskell - 按自定义字段对 Hakyll 项目列表进行排序

我想在我的帖子中添加一个名为 的自定义字段coolness,如下所示:

然后我想按酷度对我的帖子进行排序。我怎么做?我知道我可以按日期排序: posts <- recentFirst =<< loadAll "posts/*" 使用recentFirst,但这是内置的,我真的不知道如何修改它来排序,coolness因为它使用一些自定义方法来找出帖子的日期。