UNPKG

@analogjs/platform

Version:

The fullstack meta-framework for Angular

54 lines 4.18 kB
import { marked } from 'marked'; import { gfmHeadingId } from 'marked-gfm-heading-id'; import { mangle } from 'marked-mangle'; export class MarkedSetupService { constructor(options, highlighter) { this.options = options; this.highlighter = highlighter; const analogMarkedExtension = { pedantic: false, gfm: true, breaks: false, renderer: { code({ text, lang }) { // Let's do a language based detection like on GitHub // So we can still have non-interpreted mermaid code if (lang === 'mermaid') { return '<pre class="mermaid">' + text + '</pre>'; } if (!lang) { return '<pre><code>' + text + '</code></pre>'; } if (highlighter?.augmentCodeBlock) { return highlighter?.augmentCodeBlock(text, lang); } return `<pre class="language-${lang}"><code class="language-${lang}">${text}</code></pre>`; }, codespan({ text }) { return `<code>${text}</code>`; }, paragraph({ tokens }) { const text = this.parser.parseInline(tokens); return `<p>${text}</p>`; }, }, }; const extensions = [ analogMarkedExtension, gfmHeadingId(), ...(options?.extensions || []), ]; if (this.options?.mangle) { extensions.push(mangle()); } if (this.highlighter) { extensions.push(this.highlighter.getHighlightExtension()); } marked.use(...extensions); this.marked = marked; } getMarkedInstance() { return this.marked; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VkLXNldHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvbWFya2VkL21hcmtlZC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQTJCLE1BQU0sUUFBUSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3ZDLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDbUIsT0FBMkIsRUFDM0IsV0FBc0M7UUFEdEMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQTJCO1FBRXZELE1BQU0scUJBQXFCLEdBQW9CO1lBQzdDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsR0FBRyxFQUFFLElBQUk7WUFDVCxNQUFNLEVBQUUsS0FBSztZQUNiLFFBQVEsRUFBRTtnQkFDUixJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO29CQUNqQixxREFBcUQ7b0JBQ3JELG9EQUFvRDtvQkFDcEQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7d0JBQ3ZCLE9BQU8sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLFFBQVEsQ0FBQztvQkFDbkQsQ0FBQztvQkFFRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ1YsT0FBTyxhQUFhLEdBQUcsSUFBSSxHQUFHLGVBQWUsQ0FBQztvQkFDaEQsQ0FBQztvQkFFRCxJQUFJLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO3dCQUNsQyxPQUFPLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ25ELENBQUM7b0JBRUQsT0FBTyx3QkFBd0IsSUFBSSwyQkFBMkIsSUFBSSxLQUFLLElBQUksZUFBZSxDQUFDO2dCQUM3RixDQUFDO2dCQUNELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRTtvQkFDZixPQUFPLFNBQVMsSUFBSSxTQUFTLENBQUM7Z0JBQ2hDLENBQUM7Z0JBQ0QsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFO29CQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDN0MsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDO2dCQUMxQixDQUFDO2FBQ0Y7U0FDRixDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUc7WUFDakIscUJBQXFCO1lBQ3JCLFlBQVksRUFBRTtZQUNkLEdBQUcsQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQztTQUMvQixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBRTFCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGIn0=