@analogjs/platform
Version:
The fullstack meta-framework for Angular
38 lines • 3.83 kB
JavaScript
import { defaultHighlighterOptions, ShikiHighlighter, } from './shiki-highlighter.js';
export { ShikiHighlighter };
let highlighterInstance;
export function getShikiHighlighter({ highlighter = {}, highlight = {}, container = '%s', } = {}) {
if (highlighterInstance) {
return highlighterInstance;
}
const additionalLangs = highlighter.additionalLangs ?? [];
const skipLangs = highlighter.skipLangs ?? [];
const hasMermaidSupport = highlighter.langs?.includes('mermaid') ||
additionalLangs.includes('mermaid');
if (!highlighter.themes) {
if (highlight.theme) {
highlighter.themes = [highlight.theme];
}
else if (highlight.themes && typeof highlight.themes === 'object') {
highlighter.themes = Object.values(highlight.themes);
}
else {
highlighter.themes = defaultHighlighterOptions.themes;
}
}
if (!highlighter.langs) {
highlighter.langs = [...defaultHighlighterOptions.langs];
}
if (additionalLangs.length > 0) {
highlighter.langs.push(...additionalLangs);
}
if (skipLangs.length > 0) {
const skipSet = new Set(skipLangs);
highlighter.langs = highlighter.langs.filter((lang) => typeof lang !== 'string' || !skipSet.has(lang));
}
delete highlighter.additionalLangs;
delete highlighter.skipLangs;
highlighterInstance = new ShikiHighlighter(highlighter, highlight, container, hasMermaidSupport, skipLangs);
return highlighterInstance;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvc2hpa2kvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FFakIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztBQUU1QixJQUFJLG1CQUFxQyxDQUFDO0FBRTFDLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxFQUNsQyxXQUFXLEdBQUcsRUFBRSxFQUNoQixTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxJQUFJLE1BQ2UsRUFBRTtJQUNqQyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDeEIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDMUQsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7SUFDOUMsTUFBTSxpQkFBaUIsR0FDckIsV0FBVyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3RDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFhLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLENBQUMsTUFBTSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQixXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQVMsU0FBUyxDQUFDLENBQUM7UUFDM0MsV0FBVyxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDMUMsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQ2xFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxXQUFXLENBQUMsZUFBZSxDQUFDO0lBQ25DLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQztJQUU3QixtQkFBbUIsR0FBRyxJQUFJLGdCQUFnQixDQUN4QyxXQUFzQyxFQUN0QyxTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNqQixTQUFTLENBQ1YsQ0FBQztJQUVGLE9BQU8sbUJBQW1CLENBQUM7QUFDN0IsQ0FBQyJ9