diff options
Diffstat (limited to 'packages/markdown/src')
-rw-r--r-- | packages/markdown/src/checkNpmVersions.js | 5 | ||||
-rwxr-xr-x | packages/markdown/src/markdown.js | 9 | ||||
-rwxr-xr-x | packages/markdown/src/template-integration.js | 18 |
3 files changed, 32 insertions, 0 deletions
diff --git a/packages/markdown/src/checkNpmVersions.js b/packages/markdown/src/checkNpmVersions.js new file mode 100644 index 00000000..350ca549 --- /dev/null +++ b/packages/markdown/src/checkNpmVersions.js @@ -0,0 +1,5 @@ +import { checkNpmVersions } from 'meteor/tmeasday:check-npm-versions'; + +checkNpmVersions({ + 'xss': '1.0.6', +}, 'my:xss'); diff --git a/packages/markdown/src/markdown.js b/packages/markdown/src/markdown.js new file mode 100755 index 00000000..8e003f26 --- /dev/null +++ b/packages/markdown/src/markdown.js @@ -0,0 +1,9 @@ +import marked from '../marked/lib/marked.js'; + +marked.setOptions({ + gfm: true, + tables: true, + breaks: true, +}); + +Markdown = marked; diff --git a/packages/markdown/src/template-integration.js b/packages/markdown/src/template-integration.js new file mode 100755 index 00000000..bd8eec47 --- /dev/null +++ b/packages/markdown/src/template-integration.js @@ -0,0 +1,18 @@ +import sanitizeXss from 'xss'; + +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` + + 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(text))); + })); +} |