Как фильтровать сообщения Hakyll с помощью пользовательских метаданных

Я хотел бы отфильтровать некоторые сообщения моего веб-сайта на основе значения метаданных. Я хотел бы создать конкретные метаданные под названием status (лайк title или же date) которые могут принимать несколько значений (черновик, опубликовано, архив):

---
title: The title
author: Myself
date: 2016-11-29
tags: tag1, tag2
status: draft
---

По стоимости status метаданные, пост должен публиковаться или нет.

Я заглянул в документацию по взлому, но я не уверен, какие функции использовать.

Ты знаешь, как сделать это с Хакиллом?

1 ответ

Решение

Вы, наверное, ищете matchMetadata:

matchMetadata :: Pattern -> (Metadata -> Bool) -> Rules () -> Rules ()

С этим, вместо того, чтобы сказать...

match "posts/*.md" $ do -- etc.

... Ты можешь иметь:

matchMetadata "posts/*.md" (\m -> lookupString "status" m == Just "published") $ do -- etc.
Другие вопросы по тегам