/* * Squidex Headless CMS * * @license * Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved. */ import { Pipe, PipeTransform } from '@angular/core'; import marked from 'marked'; const renderer = new marked.Renderer(); renderer.link = (href, _, text) => { if (href && href.startsWith('mailto')) { return text; } else { return `${text} `; } }; @Pipe({ name: 'sqxMarkdown', pure: true }) export class MarkdownPipe implements PipeTransform { public transform(text: string | null | undefined): string { if (text) { return marked(text, { renderer }); } else { return ''; } } } @Pipe({ name: 'sqxMarkdownInline', pure: true }) export class MarkdownInlinePipe implements PipeTransform { public transform(text: string | null | undefined): string { if (text) { return marked.inlineLexer(text, [], { renderer }); } else { return ''; } } }