Styx provides two approaches to manage draft content:
- Metadata
- Directories
Using metadata
By using a draft metadata key, it possible to set a markup file to be draft data:
{---
draft = true;
---}
## Lorem ipsum
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Then, the drafts will automatically be filtered when loading the data in site.nix when loadDir is used.
data = {
posts = sortBy "date" "dsc" (loadDir { dir = ./path/to/posts; inherit env; });
};
This is the recommended solution as it is the easiest to set in place.
Splitting directories
In this approach, drafts are in a separate directory.
data = {
posts = let
drafts = loadDir { dir = ./path/to/drafts; inherit env; draft = true; });
posts = optionals (conf.renderDrafts == true)
(loadDir { dir = ./path/to/posts; inherit env; });
in sortBy "date" "dsc" (posts ++ drafts);
};