gbr/md/metadata/frontmatter

Frontmatter is parser formatter to markdown metadata with:

You can use this to dev personal blog posts.

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.
Search Document