UNPKG

@analogjs/platform

Version:

The fullstack meta-framework for Angular

48 lines 4.09 kB
import { marked, Parser } 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 renderer = new marked.Renderer(); const parser = new Parser({ renderer }); 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 (this.highlighter?.augmentCodeBlock) { return this.highlighter?.augmentCodeBlock(text, lang); } return `<pre class="language-${lang}"><code class="language-${lang}">${text}</code></pre>`; }; renderer.codespan = ({ text }) => `<code>${text}</code>`; renderer.paragraph = ({ tokens }) => { const text = parser.parseInline(tokens); return `<p>${text}</p>`; }; const extensions = [gfmHeadingId()]; if (this.options?.mangle) { extensions.push(mangle()); } if (this.highlighter) { extensions.push(this.highlighter.getHighlightExtension()); } marked.use(...extensions, { renderer, pedantic: false, gfm: true, breaks: false, }); this.marked = marked; } getMarkedInstance() { return this.marked; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2VkLXNldHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvbWFya2VkL21hcmtlZC1zZXR1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3ZDLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDbUIsT0FBMkIsRUFDM0IsV0FBc0M7UUFEdEMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQTJCO1FBRXZELE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4QyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtZQUNqQyxxREFBcUQ7WUFDckQsb0RBQW9EO1lBQ3BELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLHVCQUF1QixHQUFHLElBQUksR0FBRyxRQUFRLENBQUM7WUFDbkQsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixPQUFPLGFBQWEsR0FBRyxJQUFJLEdBQUcsZUFBZSxDQUFDO1lBQ2hELENBQUM7WUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxDQUFDO1lBRUQsT0FBTyx3QkFBd0IsSUFBSSwyQkFBMkIsSUFBSSxLQUFLLElBQUksZUFBZSxDQUFDO1FBQzdGLENBQUMsQ0FBQztRQUVGLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDO1FBRXpELFFBQVEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxPQUFPLE1BQU0sSUFBSSxNQUFNLENBQUM7UUFDMUIsQ0FBQyxDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBRXBDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QixVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxVQUFVLEVBQUU7WUFDeEIsUUFBUTtZQUNSLFFBQVEsRUFBRSxLQUFLO1lBQ2YsR0FBRyxFQUFFLElBQUk7WUFDVCxNQUFNLEVBQUUsS0FBSztTQUNkLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUNGIn0=