问题标签 [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.
haskell - Hakyll 模板中的标签列表字段
因此,Hakyll 已经tagsField
可以添加到模板中,但它会将整个标签列表预先格式化为 HTML 字符串。我可以编写一个 custom tagsField
,但我想将我的关注点分开:让 Hakyll 为每个页面构建一个标签列表,然后将其传递给 a 中的模板,listField
以便我可以在那里用一个$for(tags)$ ... $tags$ ... $endfor$
块引用它。
我对 Hakyll 很陌生,而且总的来说还是 Haskell 的新手,所以我不太清楚我的函数的类型。对此方向的任何帮助表示赞赏。
haskell - 使用外部库时如何适应 IO 类型
我正在尝试 Hakyll,但无法将 IO 类型融入 Hakyll 编译过程。这是教程中的示例 Hakyll 代码。
我想查看匹配目录中的本地化文件列表(en.md、fr.md、...)并生成可用语言列表,我将使用它来生成用于重定向到翻译的 url。我认为这个逻辑必须放在$1
.
它是文件操作,所以它产生IO [FilePath]
. But $1
is inside Hakyll.Compiler
monad,它是在Hakyll.Rules
和IO
monads 内部计算的。不知何故,我需要处理IO
类型以在库作者设置的类型签名中工作。有什么好方法可以做到这一点?
我能想到的其他一些实现可以避免访问文件系统和生成IO
类型,但如果可能的话,我想这样做。另外,我想深入了解这一点,因为它看起来像是我在编写 Haskell 时可能经常遇到的一种问题。
haskell - 如何协调`hakyll`和`hakyll-images`之间的类型
我正在尝试使用hakyll
并hakyll-images
实现hakyll-images
自述文件中的一个示例,该示例执行我需要做的图像缩放。给定示例的类型不统一,我正在寻求有关如何进行的建议。
hakyll-images
自述文件中的失败示例如下。
尝试编译会报错:
错误是因为Image
由 定义的typeloadImage
必须compile
是 typeclass 的实例Writable
。hakyll
从 hackage 文档中复制的和使用的函数类型hakyll-images
如下所示。
Image
定义hakyll-images
为type Image = Image_ ByteString
。我不确定是什么Image_
;它的定义未在该Hakyll.Images
模块的文档中链接。
无论如何,hakyll-images
由于Image
不是Writable
. 我想知道是否可能hakyll-images
包在某些时候变得不同步hakyll
导致示例不再编译。
这个评估似乎正确吗?您对我如何解决解决方案有什么建议?
我正在考虑:
- 通过
hakyll-images
以某种方式Writable
为Image
. - 使用其他一些功能集或组合来执行保持纵横比的图像缩放。
- 放弃
hakyll-images
并寻找其他方式来缩放图像。
haskell - 是否可以将 asciidoc 与 hakyll 一起使用?
我按照本教程使用 hakyll 创建了一个基本的静态网页。它包括许多从目录中的 markdown 呈现的页面posts
,例如2015-08-12-spqr.markdown
.
我更喜欢 asciidoc 而不是 markdown,并尝试将 asciidoc 添加2018-01-23_adoc-user-manual.asciidoc
到post
目录中。但是,hakyll
尝试编译页面时会引发错误:
这是pandocCompiler
无法处理的问题asciidoc
吗?可以asciidoc
用hakyll
吗?
haskell - 使用 let 语句时,Hakyll 代码段无法编译
我在玩 Hakyll 并试图理解为什么它不能编译我在下面的代码片段中使用 let 语句的原因:
我在这里尝试做的只是编译简单的 index.html 模板。对我来说似乎很奇怪的是,当我删除 let 语句时它不会编译。然后 GHCi 开始抱怨:
据我所知, let 语句不应该以任何方式推断行为,因为indexCtx
它甚至没有在其他地方使用。
haskell - 如何在 Nix 中制作这个 Haskell 开发环境?
我正在尝试为仅具有依赖项的 Web 项目创建 Haskell 开发环境hakyll
,blaze
和clay
。只是,粘土似乎无法建造,抱怨说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')
.
metadata - 从 Hakyll 中的元数据创建列表字段
我正在尝试为 Hakyll 中元数据中有versions
条目的帖子生成 HTML。例如,一篇文章可能versions: Python 3.4, pytest 1.5.2
会在文章底部很好地格式化。
为此,我想创建一个上下文来加载元数据并创建一个ListField
. 类似于以下存根:
在我的post.html
模板中,我有:
然而,我尝试了许多不同的定义,versionsCtx
并在网上找到了类似的尝试。似乎没有任何工作,并且帖子总是以“失败......”呈现。我究竟做错了什么?
编辑:用建议和说明更新问题。
haskell - Hakyll 教程出错了
我正在关注https://jaspervdj.be/hakyll/tutorials/01-installation.html中的 Hakyll 教程。
但似乎有什么不对劲,我不知道是什么。当我运行“stack init”时,我收到了这条消息。
我的路径似乎正确包含在内。为什么会这样?
hakyll - 标签页面上的自定义内容
我已设置 Hakyll 以从博客文章中生成基本标签页面,如下所示:
我希望能够为每一页提供一个可选的序言。
为此,我希望在preambles目录中的每个标签都有一个降价文件,并在构建标签页面时尝试使用这些文件。但是,我不知道如何使它成为可选的,因为loadSnapshot
如果fail
没有找到。
这是一种合适的方法吗?如果是,我将如何处理丢失的数据?
另外,我不确定这bodyField
是将数据传递给模板的适当方式。
haskell - 按自定义字段对 Hakyll 项目列表进行排序
我想在我的帖子中添加一个名为 的自定义字段coolness
,如下所示:
然后我想按酷度对我的帖子进行排序。我怎么做?我知道我可以按日期排序:
posts <- recentFirst =<< loadAll "posts/*"
使用recentFirst
,但这是内置的,我真的不知道如何修改它来排序,coolness
因为它使用一些自定义方法来找出帖子的日期。