From 44090f41c77621a8d4ecf47c0daabc2e600f5b01 Mon Sep 17 00:00:00 2001 From: Abhijeet Chatterjee <abhijeet007rocks8@gmail.com> Date: Thu, 30 Sep 2021 04:55:07 +0000 Subject: [PATCH] Refactor-v-html-markdown.vue --- app/assets/javascripts/notebook/cells/markdown.vue | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/notebook/cells/markdown.vue b/app/assets/javascripts/notebook/cells/markdown.vue index 1384c9c40b311..073b27605bb89 100644 --- a/app/assets/javascripts/notebook/cells/markdown.vue +++ b/app/assets/javascripts/notebook/cells/markdown.vue @@ -1,6 +1,7 @@ <script> import katex from 'katex'; import marked from 'marked'; +import { GlSafeHtmlDirective as SafeHtml } from '@gitlab/ui'; import { sanitize } from '~/lib/dompurify'; import { hasContent, markdownConfig } from '~/lib/utils/text_utility'; import Prompt from './prompt.vue'; @@ -138,6 +139,9 @@ export default { components: { prompt: Prompt, }, + directives: { + SafeHtml, + }, inject: ['relativeRawPath'], props: { cell: { @@ -150,16 +154,17 @@ export default { renderer.attachments = this.cell.attachments; renderer.relativeRawPath = this.relativeRawPath; - return sanitize(marked(this.cell.source.join('').replace(/\\/g, '\\\\')), markdownConfig); + return marked(this.cell.source.join('').replace(/\\/g, '\\\\')); }, }, + markdownConfig, }; </script> <template> <div class="cell text-cell"> <prompt /> - <div class="markdown" v-html="markdown /* eslint-disable-line vue/no-v-html */"></div> + <div v-safe-html:[$options.markdownConfig]="markdown" class="markdown"></div> </div> </template> -- GitLab