feat: persisting elements in filesystem

This commit is contained in:
2026-04-23 14:26:16 +02:00
parent 6f57728a6d
commit 5374ffe613
8 changed files with 811 additions and 53 deletions

29
lib/bds/frontmatter.ex Normal file
View File

@@ -0,0 +1,29 @@
defmodule BDS.Frontmatter do
@moduledoc false
def serialize_document(fields, body) when is_list(fields) do
frontmatter =
fields
|> Enum.flat_map(&serialize_field/1)
|> Enum.join("\n")
["---", frontmatter, "---", body || "", ""]
|> Enum.join("\n")
end
defp serialize_field({_key, nil}), do: []
defp serialize_field({_key, ""}), do: []
defp serialize_field({_key, false}), do: []
defp serialize_field({key, true}) do
["#{key}: true"]
end
defp serialize_field({key, values}) when is_list(values) do
["#{key}:" | Enum.map(values, &" - #{&1}")]
end
defp serialize_field({key, value}) do
["#{key}: #{value}"]
end
end