Skip to content

Instantly share code, notes, and snippets.

@dsignr
Created June 26, 2019 20:17
Show Gist options
  • Save dsignr/4032bce992ce302e068699fd69b0bfff to your computer and use it in GitHub Desktop.
Save dsignr/4032bce992ce302e068699fd69b0bfff 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