UNPKG

@analogjs/platform

Version:

The fullstack meta-framework for Angular

45 lines 3.34 kB
import markedShiki from 'marked-shiki'; import { getHighlighter, } from 'shiki'; import { MarkedContentHighlighter } from '../marked/marked-content-highlighter.js'; export const defaultHighlighterOptions = { langs: [ 'json', 'ts', 'tsx', 'js', 'jsx', 'html', 'css', 'angular-html', 'angular-ts', ], themes: ['github-dark', 'github-light'], }; export class ShikiHighlighter extends MarkedContentHighlighter { constructor(highlighterOptions, highlightOptions, container, hasLoadMermaid = false) { super(); this.highlighterOptions = highlighterOptions; this.highlightOptions = highlightOptions; this.container = container; this.hasLoadMermaid = hasLoadMermaid; this.highlighter = getHighlighter(this.highlighterOptions); } getHighlightExtension() { return markedShiki({ container: this.container, highlight: async (code, lang, props) => { if (this.hasLoadMermaid && lang === 'mermaid') { return `<pre class="mermaid">${code}</pre>`; } const { codeToHtml } = await this.highlighter; return codeToHtml(code, Object.assign({ lang, // required by `transformerMeta*` meta: { __raw: props.join(' ') }, theme: 'github-dark', }, this.highlightOptions)); }, }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpa2ktaGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvc2hpa2kvc2hpa2ktaGlnaGxpZ2h0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFPTCxjQUFjLEdBQ2YsTUFBTSxPQUFPLENBQUM7QUFFZixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQVVuRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRztJQUN2QyxLQUFLLEVBQUU7UUFDTCxNQUFNO1FBQ04sSUFBSTtRQUNKLEtBQUs7UUFDTCxJQUFJO1FBQ0osS0FBSztRQUNMLE1BQU07UUFDTixLQUFLO1FBQ0wsY0FBYztRQUNkLFlBQVk7S0FDYjtJQUNELE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUM7Q0FDeEMsQ0FBQztBQUVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSx3QkFBd0I7SUFHNUQsWUFDVSxrQkFBMkMsRUFDM0MsZ0JBQXVDLEVBQ3ZDLFNBQWlCLEVBQ2pCLGlCQUFpQixLQUFLO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBTEEsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF5QjtRQUMzQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXVCO1FBQ3ZDLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFOZixnQkFBVyxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQVN2RSxDQUFDO0lBQ0QscUJBQXFCO1FBQ25CLE9BQU8sV0FBVyxDQUFDO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3JDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQzlDLE9BQU8sd0JBQXdCLElBQUksUUFBUSxDQUFDO2dCQUM5QyxDQUFDO2dCQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzlDLE9BQU8sVUFBVSxDQUNmLElBQUksRUFDSixNQUFNLENBQUMsTUFBTSxDQUNYO29CQUNFLElBQUk7b0JBQ0osaUNBQWlDO29CQUNqQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDaEMsS0FBSyxFQUFFLGFBQWE7aUJBQ3JCLEVBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUN0QixDQUNGLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=