UNPKG

@ng-doc/app

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

1 lines 2.82 kB
{"version":3,"file":"ng-doc-app-services-highlighter.mjs","sources":["../../../../libs/app/services/highlighter/highlighter.service.ts","../../../../libs/app/services/highlighter/ng-doc-app-services-highlighter.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { NG_DOC_SHIKI_THEME } from '@ng-doc/app/tokens';\nimport { HighlighterGeneric } from '@shikijs/core/types';\nimport { ThemeInput } from 'shiki';\nimport { createHighlighterCore } from 'shiki/core';\nimport getWasm from 'shiki/wasm';\n\nexport interface NgDocHighlighterConfig {\n /**\n * Themes sources.\n */\n themes?: ThemeInput[];\n /**\n * Theme that will be used for rendering the code blocks.\n */\n theme?: {\n light: string;\n dark: string;\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgDocHighlighterService {\n highlighter?: HighlighterGeneric<string, string>;\n\n protected readonly theme = inject(NG_DOC_SHIKI_THEME);\n\n async initialize(config?: NgDocHighlighterConfig): Promise<void> {\n this.highlighter = (await createHighlighterCore({\n themes: [\n import('shiki/themes/github-light.mjs'),\n import('shiki/themes/ayu-dark.mjs'),\n ...(config?.themes ?? []),\n ],\n langs: [import('shiki/langs/angular-html.mjs')],\n loadWasm: getWasm,\n })) as HighlighterGeneric<string, string>;\n }\n\n highlight(code: string): string {\n return this.highlighter!.codeToHtml(code, {\n lang: 'angular-html',\n themes: {\n light: this.theme.light || 'github-light',\n dark: this.theme.dark || 'ayu-dark',\n },\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAwBa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC;AAuBtD;IArBC,MAAM,UAAU,CAAC,MAA+B,EAAA;AAC9C,QAAA,IAAI,CAAC,WAAW,IAAI,MAAM,qBAAqB,CAAC;AAC9C,YAAA,MAAM,EAAE;gBACN,OAAO,+BAA+B,CAAC;gBACvC,OAAO,2BAA2B,CAAC;AACnC,gBAAA,IAAI,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;AAC1B,aAAA;AACD,YAAA,KAAK,EAAE,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAC/C,YAAA,QAAQ,EAAE,OAAO;AAClB,SAAA,CAAC,CAAuC;;AAG3C,IAAA,SAAS,CAAC,IAAY,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,WAAY,CAAC,UAAU,CAAC,IAAI,EAAE;AACxC,YAAA,IAAI,EAAE,cAAc;AACpB,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,cAAc;AACzC,gBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,UAAU;AACpC,aAAA;AACF,SAAA,CAAC;;8GAxBO,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACvBD;;AAEG;;;;"}