{"version":3,"file":"useMarkdownParser-cPr4eWCu.cjs","sources":["../src/composables/useMarkdownParser.ts"],"sourcesContent":["import {createMarkdownParser, createShikiHighlighter, rehypeHighlight} from \"@nuxtjs/mdc/runtime\";\nimport {createJavaScriptRegexEngine} from \"shiki/engine/javascript\"\nimport type {MDCParserResult} from \"@nuxtjs/mdc\";\nimport GithubLight from \"shiki/themes/github-light.mjs\";\nimport GithubDark from \"shiki/themes/github-dark.mjs\";\nimport Bash from \"shiki/langs/bash.mjs\";\nimport C from \"shiki/langs/c.mjs\";\nimport Cpp from \"shiki/langs/cpp.mjs\";\nimport Csv from \"shiki/langs/csv.mjs\";\nimport Dockerfile from \"shiki/langs/dockerfile.mjs\";\nimport Go from \"shiki/langs/go.mjs\";\nimport Groovy from \"shiki/langs/groovy.mjs\";\nimport Handlebars from \"shiki/langs/handlebars.mjs\";\nimport Hcl from \"shiki/langs/hcl.mjs\";\nimport Ini from \"shiki/langs/ini.mjs\";\nimport Java from \"shiki/langs/java.mjs\";\nimport Javascript from \"shiki/langs/javascript.mjs\";\nimport Json from \"shiki/langs/json.mjs\";\nimport Markdown from \"shiki/langs/markdown.mjs\";\nimport Mermaid from \"shiki/langs/mermaid.mjs\";\nimport Perl from \"shiki/langs/perl.mjs\";\nimport Php from \"shiki/langs/php.mjs\";\nimport Python from \"shiki/langs/python.mjs\";\nimport R from \"shiki/langs/r.mjs\";\nimport Ruby from \"shiki/langs/ruby.mjs\";\nimport Rust from \"shiki/langs/rust.mjs\";\nimport Scala from \"shiki/langs/scala.mjs\";\nimport Sql from \"shiki/langs/sql.mjs\";\nimport Systemd from \"shiki/langs/systemd.mjs\";\nimport Twig from \"shiki/langs/twig.mjs\";\nimport Typescript from \"shiki/langs/typescript.mjs\";\nimport Xml from \"shiki/langs/xml.mjs\";\nimport Yaml from \"shiki/langs/yaml.mjs\";\nimport Html from \"shiki/langs/html.mjs\";\n\n\nexport const langsMap: Record<string, any> = {\n    bash: Bash,\n    c: C,\n    cpp: Cpp,\n    csv: Csv,\n    dockerfile: Dockerfile,\n    go: Go,\n    groovy: Groovy,\n    handlebars: Handlebars,\n    hcl: Hcl,\n    ini: Ini,\n    java: Java,\n    javascript: Javascript,\n    json: Json,\n    markdown: Markdown,\n    mermaid: Mermaid,\n    perl: Perl,\n    php: Php,\n    python: Python,\n    r: R,\n    ruby: Ruby,\n    rust: Rust,\n    scala: Scala,\n    sql: Sql,\n    systemd: Systemd,\n    twig: Twig,\n    typescript: Typescript,\n    xml: Xml,\n    yaml: Yaml,\n    html: Html,\n};\n\nexport type MDParser = (md: string) => Promise<MDCParserResult>\n\nexport default async function useMarkdownParser() {\n    let parser: MDParser;\n\n    return async (markdown:string) => {\n        if (!parser) {\n            \n            const {bundledLanguagesInfo} = await import(\"shiki/langs\");\n\n\n            Object.entries(langsMap).forEach(([langId, lang]) => {\n                const info = bundledLanguagesInfo.find(i => i.aliases?.includes?.(langId) || i.id === langId);\n                if (!info) {\n                    throw new Error(`[@nuxtjs/mdc] Could not find shiki language: ${langId}`);\n                }\n                for (const alias of info.aliases || []) {\n                    langsMap[alias] = lang;\n                }\n            });\n\n            parser = await createMarkdownParser({\n                rehype: {\n                    plugins: {\n                        highlight: {\n                            instance: rehypeHighlight,\n                            options: {\n                                theme: {\n                                    dark: GithubDark,\n                                    light: GithubLight\n                                },\n                                // Create the Shiki highlighter\n                                highlighter: createShikiHighlighter({\n                                    // Configure the bundled languages\n                                    bundledLangs: langsMap,\n                                    engine: createJavaScriptRegexEngine() as any\n                                }),\n                            },\n                        }\n                    },\n                },\n            })\n        }\n        return parser(markdown)\n    }\n}"],"names":["langsMap","Bash","C","Cpp","Csv","Dockerfile","Go","Groovy","Handlebars","Hcl","Ini","Java","Javascript","Json","Markdown","Mermaid","Perl","Php","Python","R","Ruby","Rust","Scala","Sql","Systemd","Twig","Typescript","Xml","Yaml","Html","useMarkdownParser","parser","markdown","bundledLanguagesInfo","langId","lang","info","i","alias","createMarkdownParser","rehypeHighlight","GithubDark","GithubLight","createShikiHighlighter","createJavaScriptRegexEngine"],"mappings":"8qDAoCaA,EAAgC,CACzC,KAAMC,EACN,EAAGC,EACH,IAAKC,EACL,IAAKC,EACL,WAAYC,EACZ,GAAIC,EACJ,OAAQC,EACR,WAAYC,EACZ,IAAKC,EACL,IAAKC,EACL,KAAMC,EACN,WAAYC,EACZ,KAAMC,EACN,SAAUC,EACV,QAASC,EACT,KAAMC,EACN,IAAKC,EACL,OAAQC,EACR,EAAGC,EACH,KAAMC,EACN,KAAMC,EACN,MAAOC,EACP,IAAKC,EACL,QAASC,EACT,KAAMC,EACN,WAAYC,EACZ,IAAKC,EACL,KAAMC,EACN,KAAMC,CACV,EAIA,eAA8BC,GAAoB,CAC9C,IAAIC,EAEJ,MAAO,OAAOC,GAAoB,CAC9B,GAAI,CAACD,EAAQ,CAET,KAAM,CAAC,qBAAAE,CAAA,EAAwB,KAAM,QAAO,aAAa,EAGzD,OAAO,QAAQjC,CAAQ,EAAE,QAAQ,CAAC,CAACkC,EAAQC,CAAI,IAAM,CACjD,MAAMC,EAAOH,EAAqB,KAAKI,GAAKA,EAAE,SAAS,WAAWH,CAAM,GAAKG,EAAE,KAAOH,CAAM,EAC5F,GAAI,CAACE,EACD,MAAM,IAAI,MAAM,gDAAgDF,CAAM,EAAE,EAE5E,UAAWI,KAASF,EAAK,SAAW,CAAA,EAChCpC,EAASsC,CAAK,EAAIH,CAE1B,CAAC,EAEDJ,EAAS,MAAMQ,EAAAA,qBAAqB,CAChC,OAAQ,CACJ,QAAS,CACL,UAAW,CACP,SAAUC,EAAAA,gBACV,QAAS,CACL,MAAO,CACH,KAAMC,EACN,MAAOC,CAAA,EAGX,YAAaC,EAAAA,uBAAuB,CAEhC,aAAc3C,EACd,OAAQ4C,EAAAA,4BAAA,CAA4B,CACvC,CAAA,CACL,CACJ,CACJ,CACJ,CACH,CACL,CACA,OAAOb,EAAOC,CAAQ,CAC1B,CACJ"}