Radish alpha
r
Radicle web interface
Radicle
Git (anonymous pull)
Log in to clone via SSH
R
Rūdolfs Ošiņš
Replace @radicle/gray-matter with js-yaml frontmatter parser 13 days ago 9391cd072f4d990980a22a8c9c3895eea627a906 History
radicle-explorer 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) };
}