From d573926e9b94fb19c8f51c53f71fc853182e1761 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 28 Jul 2020 09:57:16 +0200 Subject: Add migrations for abuse messages --- .../src/app/core/renderer/html-renderer.service.ts | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'client/src/app/core/renderer') diff --git a/client/src/app/core/renderer/html-renderer.service.ts b/client/src/app/core/renderer/html-renderer.service.ts index f0527c759..302d92ed9 100644 --- a/client/src/app/core/renderer/html-renderer.service.ts +++ b/client/src/app/core/renderer/html-renderer.service.ts @@ -3,19 +3,29 @@ import { LinkifierService } from './linkifier.service' @Injectable() export class HtmlRendererService { + private sanitizeHtml: typeof import ('sanitize-html') constructor (private linkifier: LinkifierService) { } + async convertToBr (text: string) { + await this.loadSanitizeHtml() + + const html = text.replace(/\r?\n/g, '
') + + return this.sanitizeHtml(html, { + allowedTags: [ 'br' ] + }) + } + async toSafeHtml (text: string) { - // FIXME: import('..') returns a struct module, containing a "default" field corresponding to our sanitizeHtml function - const sanitizeHtml: typeof import ('sanitize-html') = (await import('sanitize-html') as any).default + await this.loadSanitizeHtml() // Convert possible markdown to html const html = this.linkifier.linkify(text) - return sanitizeHtml(html, { + return this.sanitizeHtml(html, { allowedTags: [ 'a', 'p', 'span', 'br', 'strong', 'em', 'ul', 'ol', 'li' ], allowedSchemes: [ 'http', 'https' ], allowedAttributes: { @@ -37,4 +47,9 @@ export class HtmlRendererService { } }) } + + private async loadSanitizeHtml () { + // FIXME: import('..') returns a struct module, containing a "default" field corresponding to our sanitizeHtml function + this.sanitizeHtml = (await import('sanitize-html') as any).default + } } -- cgit v1.2.3