import fs from 'fs' import path from 'path' import { compileMdx } from './compile.mjs' import { jargon } from 'shared/jargon/index.mjs' /* * Loads markdown/mdx from disk */ export const loadMdxFromDisk = async ({ language, // The language code of the markdown to load (like 'en') site, // The site folder, one of 'dev' or 'org' slug, // The slug below that folder, like 'guides/plugins' }) => await fs.promises.readFile(path.resolve(`../../markdown/${site}/${slug}/${language}.md`), 'utf-8') /* * Loads markdown/mdx from disk and compiles it for use * in static props. */ export const loadMdxAsStaticProps = async ({ language, // The language code of the markdown to load (like 'en') site, // The site folder, one of 'dev' or 'org' slug = false, // The slug below that folder, like 'guides/plugins' slugs = [], // Or an array of slugs to load multiple files }) => { const result = [] if (slug) slugs = [slug] for (const s of slugs) { const md = await loadMdxFromDisk({ language, site, slug: s }) const mdx = await compileMdx({ md, site, slug: s, jargon: jargon[language], }) result.push(mdx) } return slugs.length === 1 ? result[0] : result }