summaryrefslogtreecommitdiffstats
path: root/packages/markdown/src
diff options
context:
space:
mode:
authorMarc Hartmayer <hello@hartmayer.com>2020-06-06 11:26:06 +0200
committerMarc Hartmayer <hello@hartmayer.com>2020-06-06 11:26:56 +0200
commit1f85b25549b50602380f1745f19e5fe44fe36d6f (patch)
tree8893c3b18f7b20f79983e4d174e90fc598d1064a /packages/markdown/src
parent232bc746f4b2d09945fdfe68e3aa14ff6f4e79f6 (diff)
downloadwekan-1f85b25549b50602380f1745f19e5fe44fe36d6f.tar.gz
wekan-1f85b25549b50602380f1745f19e5fe44fe36d6f.tar.bz2
wekan-1f85b25549b50602380f1745f19e5fe44fe36d6f.zip
WIP: markdown
Diffstat (limited to 'packages/markdown/src')
-rw-r--r--packages/markdown/src/checkNpmVersions.js5
-rwxr-xr-xpackages/markdown/src/markdown.js9
-rwxr-xr-xpackages/markdown/src/template-integration.js18
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)));
+ }));
+}