Skip to content

Instantly share code, notes, and snippets.

@bultas
Forked from dsignr/frontmatter.ex
Created February 26, 2023 13:24
Show Gist options
  • Save bultas/28cf612655f6a34efaab943aee54cb90 to your computer and use it in GitHub Desktop.
Save bultas/28cf612655f6a34efaab943aee54cb90 to your computer and use it in GitHub Desktop.
Parse frontmatter in Elixir
def extract(changeset) do
file_name = changeset.data.name
data = File.read!("#{@data_folder}/pages/#{file_name}")
case String.split(data, ~r/\n-{3,}\n/, parts: 2) do
[""] ->
%{frontmatter: nil, content: nil}
[frontmatter, content] ->
%{
frontmatter: parse_yaml(frontmatter),
content: content
}
_ ->
%{frontmatter: nil, content: nil}
end
# {parse_yaml(frontmatter), Earmark.to_html(markdown)}
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment