Skip to main content
On this page

@std/front-matter

Overview Jump to heading

Extracts front matter from strings. Adapted from jxson/front-matter.

Supported formats

JSON

import { test, extractJson } from "@std/front-matter";
import { assertEquals } from "@std/assert";

const str = "---json\n{\"and\": \"this\"}\n---\ndeno is awesome";

assertEquals(test(str), true);
assertEquals(extractJson(str), {
  frontMatter: "{\"and\": \"this\"}",
  body: "deno is awesome",
  attrs: { and: "this" }
});

extract and test support the following delimiters.

---json
{
  "and": "this"
}
---
{
  "is": "JSON"
}

TOML

import { test, extractToml } from "@std/front-matter";
import { assertEquals } from "@std/assert";

const str = "---toml\nmodule = 'front_matter'\n---\ndeno is awesome";

assertEquals(test(str), true);
assertEquals(extractToml(str), {
  frontMatter: "module = 'front_matter'",
  body: "deno is awesome",
  attrs: { module: "front_matter" }
});

extract and test support the following delimiters.

---toml
this = 'is'
---
= toml =
parsed = 'as'
toml = 'data'
= toml =
+++
is = 'that'
not = 'cool?'
+++

YAML

import { test, extractYaml } from "@std/front-matter";
import { assertEquals } from "@std/assert";

const str = "---yaml\nmodule: front_matter\n---\ndeno is awesome";

assertEquals(test(str), true);
assertEquals(extractYaml(str), {
  frontMatter: "module: front_matter",
  body: "deno is awesome",
  attrs: { module: "front_matter" }
});

extract and test support the following delimiters.

---
these: are
---
---yaml
all: recognized
---
= yaml =
as: yaml
= yaml =

Add to your project Jump to heading

deno add jsr:@std/front-matter

See all symbols in @std/front-matter on

Did you find what you needed?

Privacy policy