// 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 { createHighlighter } from "@bitmachina/highlighter"; 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); } // import { grammars } from 'tm-grammars' // console.log() // let http = grammars.find((grammar) => grammar.name == "json") // console.log(http) import httpGrammar from 'tm-grammars/grammars/http.json' assert { type: "json" }; // @ts-ignore // http.grammar = httpGrammar; // console.log(httpGrammar) const httpHighlight = { id: 'http', // aliases: ['http', "https"], grammar: httpGrammar, categories: ['web', 'utility'], displayName: 'HTTP', embedded: ['shellscript', 'json', 'xml', 'graphql'], lastUpdate: '2023-07-24T09:58:17Z', license: 'MIT', licenseUrl: 'https://raw.githubusercontent.com/Huachao/vscode-restclient/master/LICENSE', name: 'http', scopeName: 'source.http', sha: 'a89f8bce1b5e3d5bd955f10916b0c101e20431d3', source: 'https://github.com/Huachao/vscode-restclient/blob/a89f8bce1b5e3d5bd955f10916b0c101e20431d3/syntaxes/http.tmLanguage.json', } 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: { // @ts-ignore highlighter: await createHighlighter({ theme: "github-dark", langs: [httpHighlight] }), 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;