//@ts-check import { fetchText } from "./fetchText.mjs"; import { waitIfLocalHost } from "./waitIfLocalHost.mjs"; import { generateDomFromString } from "./generateDomFromString.mjs"; import {getFirstTitleContent} from "./getFirstTitleContent.mjs"; // @ts-ignore import { micromark } from "https://esm.sh/micromark@3?bundle"; /** * Loads and parses a markdown document. Makes use of micromark. * @param {string} path the path to load */ export const fetchMarkdown = (path) => fetchText(path) .then(waitIfLocalHost()) .then((raw) => { const content = generateDomFromString(micromark(raw)); const title = getFirstTitleContent(content) || path.replace(/\.\w{2, 4}$/, ""); return { title, raw, content }; }); export default fetchMarkdown;