如何使用自定义元数据过滤 Hakyll 帖子

Jea*_*ouX 4 haskell hakyll

我想根据元数据值过滤我网站的一些帖子。我想创建一个名为status(like titleor date)的特定元数据,它可以采用多个值(草稿、已发布、存档):

---
title: The title
author: Myself
date: 2016-11-29
tags: tag1, tag2
status: draft
---
Run Code Online (Sandbox Code Playgroud)

根据status元数据的价值,该帖子是否应该发布。

我查看了 hackage 文档,但不确定要使用的功能。

你知道如何用 Hakyll 做到这一点吗?

dup*_*ode 6

您可能正在寻找matchMetadata

matchMetadata :: Pattern -> (Metadata -> Bool) -> Rules () -> Rules ()
Run Code Online (Sandbox Code Playgroud)

有了它,而不是说...

match "posts/*.md" $ do -- etc.
Run Code Online (Sandbox Code Playgroud)

... 你可能有:

matchMetadata "posts/*.md" (\m -> lookupString "status" m == Just "published") $ do -- etc.
Run Code Online (Sandbox Code Playgroud)