@Injectable()
export class MarkdownService {
private textMarkdownIt: MarkdownIt.MarkdownIt
- private linkifier: MarkdownIt.MarkdownIt
private enhancedMarkdownIt: MarkdownIt.MarkdownIt
constructor () {
.enable('list')
.enable('image')
this.setTargetToLinks(this.enhancedMarkdownIt)
-
- this.linkifier = new MarkdownIt('zero', { linkify: true })
- .enable('linkify')
- this.setTargetToLinks(this.linkifier)
}
textMarkdownToHTML (markdown: string) {
return this.avoidTruncatedLinks(html)
}
- linkify (text: string) {
- const html = this.linkifier.render(text)
-
- return this.avoidTruncatedLinks(html)
- }
-
private setTargetToLinks (markdownIt: MarkdownIt.MarkdownIt) {
// Snippet from markdown-it documentation: https://github.com/markdown-it/markdown-it/blob/master/docs/architecture.md#renderer
const defaultRender = markdownIt.renderer.rules.link_open || function (tokens, idx, options, env, self) {