mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
768 B
33 lines
768 B
/*
|
|
* 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.startsWith('mailto')) {
|
|
return text;
|
|
} else {
|
|
return `<a href="${href}" target="_blank", rel="noopener">${text} <i class="icon-external-link"></i></a>`;
|
|
}
|
|
};
|
|
|
|
@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 '';
|
|
}
|
|
}
|
|
}
|