UNPKG

@analogjs/platform

Version:

The fullstack meta-framework for Angular

65 lines (63 loc) 4.48 kB
import { markedHighlight } from 'marked-highlight'; import 'prismjs'; import './angular.js'; import { MarkedContentHighlighter } from '../marked/marked-content-highlighter.js'; export class PrismHighlighter extends MarkedContentHighlighter { augmentCodeBlock(code, lang) { const classes = lang.startsWith('diff') && Prism.languages['diff'] ? `language-${lang} diff-highlight` : `language-${lang.replace('diff-', '')}`; return `<pre class="${classes}"><code class="${classes}">${code}</code></pre>`; } getHighlightExtension() { return markedHighlight({ async: true, highlight: (code, lang) => { let diff = lang?.startsWith('diff-'); lang = diff ? lang.replace('diff-', '') : lang || 'typescript'; if (diff && !Prism.languages['diff']) { diff = false; console.warn(`Notice: --------------------------------------------------------------------------------------- The \`diff\` language and plugin are not available in the provided setup. To enable, add it to the \`analog\` plugin in your \`vite.config.ts\`: analog({ content: { prismOptions: { additionalLangs: [ 'prism-diff' ] } } }) Add the plugin import to your \`app.config.ts\` import 'prismjs/plugins/diff-highlight/prism-diff-highlight.js'; --------------------------------------------------------------------------------------- `); } if (!Prism.languages[lang]) { if (lang !== 'mermaid') { console.warn(`Notice: --------------------------------------------------------------------------------------- The requested language '${lang}' is not available in the provided setup. To enable, add it to the \`analog\` plugin in your \`vite.config.ts\`: analog({ content: { prismOptions: { additionalLangs: [ '${lang}', ] } } }) --------------------------------------------------------------------------------------- `); } return code; } return Prism.highlight(code, diff ? Prism.languages['diff'] : Prism.languages[lang], lang); }, }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpc20taGlnaGxpZ2h0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvcHJpc20vcHJpc20taGlnaGxpZ2h0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSW5GLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSx3QkFBd0I7SUFDbkQsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDbEQsTUFBTSxPQUFPLEdBQ1gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUNoRCxDQUFDLENBQUMsWUFBWSxJQUFJLGlCQUFpQjtZQUNuQyxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlDLE9BQU8sZUFBZSxPQUFPLGtCQUFrQixPQUFPLEtBQUssSUFBSSxlQUFlLENBQUM7SUFDakYsQ0FBQztJQUVRLHFCQUFxQjtRQUM1QixPQUFPLGVBQWUsQ0FBQztZQUNyQixLQUFLLEVBQUUsSUFBSTtZQUNYLFNBQVMsRUFBRSxDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxZQUFZLENBQUM7Z0JBRS9ELElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUNyQyxJQUFJLEdBQUcsS0FBSyxDQUFDO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OzthQWtCVixDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzQixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQzs7OEJBRUssSUFBSTs7Ozs7O2lCQU1qQixJQUFJOzs7Ozs7ZUFNTixDQUFDLENBQUM7b0JBQ1AsQ0FBQztvQkFDRCxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FDcEIsSUFBSSxFQUNKLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDdEQsSUFBSSxDQUNMLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIn0=