// https://github.com/String10/Hakuba/blob/master/package.json // import { defineMDSveXConfig as defineConfig } from "mdsvex"; // import type { Plugin, Settings } from 'unified'; import remarkGfm from "remark-gfm"; import remarkFrontmatter from "remark-frontmatter"; import remarkWikiLink, { } from "remark-wiki-link"; import remarkMath from "remark-math" // @ts-ignore import remarkAbbr from "remark-abbr" import remarkFootnotes from 'remark-footnotes' import rehypeKatexSvelte from 'rehype-katex-svelte'; // import github from "remark-github"; import rehypeSlug from 'rehype-slug'; import { parse, format } from "node:path"; import slugify from 'slugify'; export const NOTE_ICON = ''; export const QUOTE_ICON = ''; export const INFO_ICON = ''; export const ICONS = { note: NOTE_ICON, quote: QUOTE_ICON, info: INFO_ICON, }; import { globSync } from 'glob' const projects = globSync('/node_modules/Notes/Projects/*.md') .map((filepath) => { return parse(filepath) }) .map((path) => { return format({ // ...path, name: slugify(path.name, { lower: true }), // base: undefined, // root: "", // ext: undefined, // dir: path.dir.replace("/node_modules/Notes/Projects", "") }) }) /** * @type {string[]} */ const permalinks = projects.map((p) => "/projects/" + p) /** * @param {string} pageName * @returns {string[]} */ function pageResolver(pageName) { const slug = slugify(pageName, { lower: true }); return ["/", "/projects/"].map((p) => p + slug); } const hrefTemplate = (/** @type {string} */ permalink) => `#${permalink}` /** * @type {import("mdsvex").MdsvexOptions} */ const config = { extensions: [".svelte.md", ".md", ".svx"], // fences: true, // ruleSpaces: false, smartypants: { dashes: "oldschool", }, highlight: { alias: { ts: "typescript", mdx: "markdown", svelte: "svelte", svx: "svx", mdsvex: "svx", sig: "ts", } }, remarkPlugins: [ // remarkFrontmatter, // [github, {repository}], remarkMath, remarkAbbr, [remarkFootnotes, { inlineNotes: true }], remarkGfm, [remarkWikiLink, { // @ts-ignore aliasDivider: "|", permalinks: permalinks, pageResolver, hrefTemplate, // wikiLinkClassName, // newClassName, }], // [citePlugin, { // syntax: { // // see micromark-extension-cite // enableAltSyntax: false, // enablePandocSyntax: true, // }, // toMarkdown: { // // see mdast-util-cite // standardizeAltSyntax: false, // enableAuthorSuppression: true, // useNodeValue: false, // }, // }], // [remarkBibliography, { bibliography }], // [remarkMermaid, {}] ], rehypePlugins: [ // @ts-ignore rehypeKatexSvelte, // @ts-ignore rehypeSlug ], }; export default config;