问题标签 [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 回答
31 浏览

hakyll - 如何在不应用模板的情况下在文件中插入 $key$s?

在 Jekyll 中,可以有一个看起来像的文件

{{ title }}被插值,但这layout: null意味着文件内容不会被包装在任何类型的模板中。

Hakyll 中的等价物是什么?换句话说,如果我有一个独立的文件,比如

我需要传递什么样的块才能compile插入$title$值,而不将页面的内容包装在某个模板中?

0 投票
2 回答
135 浏览

haskell - 根据每个页面的元数据有条件地在上下文中包含一个字段

我想在我的 Hakyll 站点的上下文中添加一个字段。如果元数据中存在某个键,那么我想转换相应的值并将其包含在上下文中。如果元数据中不存在密钥,则不应将任何内容添加到上下文中。

我写了这个函数,应该做我所描述的:

但是,如果元数据字段不存在,那么这仍会在上下文中插入一个字段,并将空字符串作为其值。例如,我在我的上下文中有这一行:

我有这个模板:

在元数据中没有 no 的页面上meta_description,会生成以下 HTML:

而我想要的是根本不生产任何标签。

transformedMetadataField我在我的职能中做错了什么?

0 投票
1 回答
375 浏览

haskell - 在生成帖子的最近帖子列表时如何避免依赖循环?

所以这有效:

在 archive.html 中创建最近帖子的列表;这是沼泽标准,它来自我认为的教程之一。除了 postCtx,它有点复杂,但在这里不应该相关。

但是,我想在普通帖子的侧边栏中列出一些最近的帖子。问题是最近的帖子最终取决于他们自己。我尝试将帖子本身从它自己生成的列表中排除,但我找不到这样做的好地方。这是我到目前为止所得到的:

recentsNotSelfField应该生成一个包含自身之外的所有最近的字段,但它似乎没有工作,或者它是错误的地方,因为:

到目前为止我被困住了。

编辑:

我看到Hakyll 说“检测到依赖循环:...”,这是 loadPosts 做的,所以我尝试了这个:

但这只是让我:

,换句话说,我最终得到了两个最近的循环。

0 投票
0 回答
132 浏览

html - 使用 Hakyll 或其他相关链接问题自动从“/folder”重定向到“/folder/index.html”

我想使用 Hakyll 框架实现具有多种语言的静态 HTML 网站。我没有想出更好的解决方案,只是将默认语言放在website.com路由下,将任何其他自定义语言放在website.com/en路由下。因为我使用的是静态 HTML 并且有多种语言,所以我应该有每个页面的多个版本,例如about.html. 这样的页面是自动生成的,所以这不是问题。但目前我在跳转那些页面时遇到问题......

我在我的有这样的链接website.com/index.html

当我打开此链接时,website.com/en我想跳转到website.com/en/about.html而不是website.com/about.html. 但实际上我是从website.com/en跳到website.com/about.htmlwebsite.com/en/index.html如果我改为从我想去的地方跳website.com/en/about.html。所以我对两种可能的解决方案之一感兴趣:

  1. 当我去时,website.com/en我想被重定向到website.com/en/index.html. 我可以看到index.htmlfrom的内容,website.com/en但不知何故我无法跳转到相关链接:(
  2. 替换href=about.html为更智能的东西,这样我就可以自动folder/about.html从任何文件夹中去。

任何帮助表示赞赏!

0 投票
1 回答
331 浏览

haskell - 为什么 Stack 会在每次构建时重建一些依赖项?

我现在正在学习带有堆栈的 hakyll 静态站点生成器。

当我stack build在我的 Hakyll 站点的目录中执行要重新构建时site.hs,堆栈也每次都重新构建和复制/注册依赖项,如下所示:

这对我来说很奇怪,因为我从未更改过这些包。即使对site.hs.

为什么堆栈重建这些包?有什么办法可以减少重建时间?

谢谢你。

0 投票
0 回答
191 浏览

haskell - Pandoc 无法使用 Hakyll 和 Gitlab CI 获得正确的区域设置/编码

我正在尝试使用 Gitlab Pages 自动部署我的 Hakyll 博客,但我一直遇到文件编码问题。

在构建页面时,我收到以下错误:

我的.gitlab-ci.yaml样子是这样的:

我尝试将语言环境信息添加到我的配置中:

但后来我收到以下错误:

我怎样才能解决这个问题?有没有办法(1)更改本地机器上的编码,然后推送到 GitLab,以便文件将匹配 Pandoc 所期望的任何内容,或者(2)配置 GitLab CI 以使用它们的编码方式现在?

当我在 vscode 中打开文件时,它说它们是 UTF-8。有没有办法获得有关可能导致问题的编码的更多信息?

0 投票
1 回答
52 浏览

github - 所有项目 github 页面的样式都相同吗?

我希望我的所有项目页面都具有相同的自定义样式。但是现在我只看到每个项目页面都可以单独配置(从项目的设置中选择默认主题或gh-pages使用源文件创建分支)。

有什么办法可以归档我想要的东西吗?例如,要在我的 repo 中编写自定义样式,所有项目都可以使用该样式在提供的自定义样式username.github.io下创建页面。username.github.io/projectname

0 投票
2 回答
740 浏览

haskell - 在 Hakyll 中,如何生成标签页面?

我正在尝试做一些类似于本教程中描述的事情,即向我的 Hakyll 博客添加标签,但不是为每个标签生成一个页面,而是只有一个页面列出所有标签及其帖子。所以给定一个Post1taggedTag1和一个Post2taggedTag1, Tag2和一个Post3tagged Tag2,我的tags.html看起来像这样:

但我是 Haskell 初学者,我并不完全理解 Hakyll 的所有单子上下文。这是我到目前为止所拥有的:

Tags问题是,在我的博客中,我真的不知道是什么。我似乎无法将它们打印出来进行调试。(我尝试添加print tags,但它不起作用。)所以我很难考虑如何进行此操作。

完整的文件在 GitHub 上。

任何帮助深表感谢。

更新:我离弄清楚这一点还差得远。这是我现在正在尝试的:

随着:

就目前而言,完整的代码在这里。

对此的任何帮助将不胜感激。我知道所有文档,但我似乎无法将其转换为工作代码。

0 投票
1 回答
97 浏览

haskell - Testing with Hakyll's MonadMetadata

For our Hakyll codebase, I've written a few helper methods and have started adding some HSpec unit tests around newer ones e.g.:

Now creating an Item or Identifier for testing is easy enough, but I'm not sure where to go with the MonadMetadata when running an Hspec.

I've seen testCompiler which feels like it might be copyable / useful (Compiler has a MonadMetadata instance), but I'm out of my Haskell-depth here...

0 投票
1 回答
174 浏览

haskell - How to filter Hakyll posts with a custom metadata

I would like to filter some posts of my website based on a metadata value. I would like to create a specific metadata called status (like title or date) which could take several values (draft, published, archive) :

According to the value of the status metadata, the post should be published or not.

I have a look in the hackage documentation but I'm not sure of the functions to use.

Do you know how to make that with Hakyll ?