Radish alpha
r
Radicle desktop app
Radicle
Git (anonymous pull)
Log in to clone via SSH
R
Rūdolfs Ošiņš
Replace @radicle/gray-matter with js-yaml frontmatter parser
CI — 1 passed, 0 failed
z6Mkv4cJ...8KSb success
7 days ago 15955af7fd0baef9c6f9ea7570151cae5d2701f1 History
radicle-desktop src lib frontmatter.ts
import yaml from "js-yaml";

const FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;

export interface ParsedFrontmatter {
  data: Record<string, unknown>;
  content: string;
}

export function parseFrontmatter(input: string): ParsedFrontmatter {
  const match = input.match(FRONTMATTER_RE);
  if (!match) {
    return { data: {}, content: input };
  }
  const parsed = yaml.load(match[1]);
  const data =
    parsed && typeof parsed === "object" && !Array.isArray(parsed)
      ? (parsed as Record<string, unknown>)
      : {};
  return { data, content: input.slice(match[0].length) };
}