diff --git a/client/components/main/editor.js b/client/components/main/editor.js index 24ba29281..d47665dad 100755 --- a/client/components/main/editor.js +++ b/client/components/main/editor.js @@ -275,7 +275,10 @@ function mySafeAttrValue(tag, name, value, cssFilter) { if ( /^thunderlink:/gi.test(value) || /^cbthunderlink:/gi.test(value) || - /^aodroplink:/gi.test(value) + /^aodroplink:/gi.test(value) || + /^onenote:/gi.test(value) || + /^file:/gi.test(value) || + /^mailspring:/gi.test(value) ) { return value; } else { diff --git a/packages/markdown/src/template-integration.js b/packages/markdown/src/template-integration.js index 7d5dc3fbe..a56df5b16 100755 --- a/packages/markdown/src/template-integration.js +++ b/packages/markdown/src/template-integration.js @@ -2,8 +2,8 @@ import sanitizeXss from 'xss'; var Markdown = require('markdown-it')({ html: true, linkify: true, - typographer: true, - breaks: true, + typographer: true, + breaks: true, }); // Additional safeAttrValue function to allow for other specific protocols @@ -13,7 +13,12 @@ function mySafeAttrValue(tag, name, value, cssFilter) { // then use your custom function if (tag === 'a' && name === 'href') { // only filter the value if starts with 'cbthunderlink:' or 'aodroplink' - if (/^thunderlink:/ig.test(value) || /^cbthunderlink:/ig.test(value) || /^aodroplink:/ig.test(value)) { + if (/^thunderlink:/ig.test(value) || + /^cbthunderlink:/ig.test(value) || + /^aodroplink:/ig.test(value) || + /^onenote:/ig.test(value) || + /^file:/ig.test(value) || + /^mailspring:/ig.test(value)) { return value; } else { @@ -30,18 +35,18 @@ var emoji = require('markdown-it-emoji'); Markdown.use(emoji); if (Package.ui) { - const Template = Package.templating.Template; - const UI = Package.ui.UI; - const HTML = Package.htmljs.HTML; - const Blaze = Package.blaze.Blaze; // implied by `ui` + const Template = Package.templating.Template; + const UI = Package.ui.UI; + const HTML = Package.htmljs.HTML; + const Blaze = Package.blaze.Blaze; // implied by `ui` - UI.registerHelper('markdown', new Template('markdown', function () { - const self = this; - let text = ''; - if (self.templateContentBlock) { - text = Blaze._toText(self.templateContentBlock, HTML.TEXTMODE.STRING); - } + UI.registerHelper('markdown', new Template('markdown', function () { + const self = this; + let text = ''; + if (self.templateContentBlock) { + text = Blaze._toText(self.templateContentBlock, HTML.TEXTMODE.STRING); + } - return HTML.Raw(sanitizeXss(Markdown.render(text), { safeAttrValue: mySafeAttrValue })); - })); + return HTML.Raw(sanitizeXss(Markdown.render(text), { safeAttrValue: mySafeAttrValue })); + })); }