Как фильтровать сообщения 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.