gbr/md/metadata/frontmatter
Frontmatter is parser formatter to markdown metadata with:
You can use this to dev personal blog posts.
- title: Title of markdown document.
- description: Description of markdown document.
- slug: Html slug representation,e.g., “gleam-first-programming”.
- tags: List tags of markdown document.
- Handles format like “[tag1, tag2]” or “tag1, tag2”
- date: Created at.
Types
Frontmatter metadata type
- title: Title of markdown document.
- description: Description of markdown document.
- slug: Html slug representation,e.g., “gleam-first-programming”.
- tags: List tags of markdown document.
- Handles format like “[tag1, tag2]” or “tag1, tag2”
- date: Created at.
pub type Frontmatter {
Frontmatter(
title: String,
date: String,
slug: String,
tags: List(String),
description: option.Option(String),
)
}
Constructors
-
Frontmatter( title: String, date: String, slug: String, tags: List(String), description: option.Option(String), )
Frontmatter error
pub type FrontmatterError {
NoFoundMetadata
MissingRequiredField(String)
}
Constructors
-
NoFoundMetadata -
MissingRequiredField(String)
Values
pub fn extract(
markdown: String,
) -> Result(#(String, String), FrontmatterError)
Extract metadata and body from markdown content
- markdown: Markdown content
Result:
- let #(metadata, body) = result
pub fn metadata(in: Frontmatter) -> List(#(String, String))
Convert frontmatter type to markdown generic metadata.
- in: Frontmatter type
pub fn parse(
markdown: String,
) -> Result(#(Frontmatter, String), FrontmatterError)
Extract frontmatter and body from markdown content
- markdown: Markdown content
Result:
- let #(frontmatter, body) = result
pub fn parse_yaml(
yaml: String,
) -> Result(Frontmatter, FrontmatterError)
Parse yaml key/value frontmatter format.
- yaml: Frontmatter content.