]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/core/renderer/html-renderer.service.ts
Fix HTML in account/channel description
[github/Chocobozzz/PeerTube.git] / client / src / app / core / renderer / html-renderer.service.ts
index 1fe91b96bf83f1ed0c9d46477eee28a876d22da9..d158519f8f973f07749b288c9f55c37e8dd7c0d8 100644 (file)
@@ -1,6 +1,6 @@
 import { Injectable } from '@angular/core'
+import { getCustomMarkupSanitizeOptions, getDefaultSanitizeOptions } from '@shared/core-utils/renderer/html'
 import { LinkifierService } from './linkifier.service'
-import { SANITIZE_OPTIONS } from '@shared/core-utils/renderer/html'
 
 @Injectable()
 export class HtmlRendererService {
@@ -20,13 +20,19 @@ export class HtmlRendererService {
     })
   }
 
-  async toSafeHtml (text: string) {
-    await this.loadSanitizeHtml()
+  async toSafeHtml (text: string, additionalAllowedTags: string[] = []) {
+    const [ html ] = await Promise.all([
+      // Convert possible markdown to html
+      this.linkifier.linkify(text),
+
+      this.loadSanitizeHtml()
+    ])
 
-    // Convert possible markdown to html
-    const html = this.linkifier.linkify(text)
+    const options = additionalAllowedTags.length !== 0
+      ? getCustomMarkupSanitizeOptions(additionalAllowedTags)
+      : getDefaultSanitizeOptions()
 
-    return this.sanitizeHtml(html, SANITIZE_OPTIONS)
+    return this.sanitizeHtml(html, options)
   }
 
   private async loadSanitizeHtml () {