diff --git a/Gemfile b/Gemfile index e919ba4da..9cbeeb992 100644 --- a/Gemfile +++ b/Gemfile @@ -92,7 +92,10 @@ gem 'rails-assets-punycode', '1.3.2' gem 'rails-assets-markdown-it', '3.0.3' gem 'rails-assets-markdown-it-hashtag', '0.2.3' gem 'rails-assets-markdown-it-diaspora-mention', '0.1.2' +gem 'rails-assets-markdown-it-sanitizer', '0.2.0' gem 'rails-assets-markdown-it--markdown-it-for-inline', '0.1.0' +gem 'rails-assets-markdown-it-sub', '0.1.0' +gem 'rails-assets-markdown-it-sup', '0.1.0' # jQuery plugins diff --git a/Gemfile.lock b/Gemfile.lock index cd2e4b46d..8bdde68ae 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -442,6 +442,9 @@ GEM rails-assets-markdown-it (3.0.3) rails-assets-markdown-it-diaspora-mention (0.1.2) rails-assets-markdown-it-hashtag (0.2.3) + rails-assets-markdown-it-sanitizer (0.2.0) + rails-assets-markdown-it-sub (0.1.0) + rails-assets-markdown-it-sup (0.1.0) rails-assets-perfect-scrollbar (0.5.7) rails-assets-jquery (>= 1.10) rails-assets-punycode (1.3.2) @@ -689,6 +692,9 @@ DEPENDENCIES rails-assets-markdown-it--markdown-it-for-inline (= 0.1.0) rails-assets-markdown-it-diaspora-mention (= 0.1.2) rails-assets-markdown-it-hashtag (= 0.2.3) + rails-assets-markdown-it-sanitizer (= 0.2.0) + rails-assets-markdown-it-sub (= 0.1.0) + rails-assets-markdown-it-sup (= 0.1.0) rails-assets-perfect-scrollbar (= 0.5.7) rails-assets-punycode (= 1.3.2) rails-i18n (= 4.0.3) diff --git a/app/assets/javascripts/app/helpers/text_formatter.js b/app/assets/javascripts/app/helpers/text_formatter.js index a4642b0e7..7a3c626a0 100644 --- a/app/assets/javascripts/app/helpers/text_formatter.js +++ b/app/assets/javascripts/app/helpers/text_formatter.js @@ -28,7 +28,7 @@ var md = window.markdownit({ breaks: true, - html: false, + html: true, linkify: true, typographer: true }); @@ -61,6 +61,13 @@ var mentionPlugin = window.markdownitDiasporaMention; md.use(mentionPlugin, mentions); + var subPlugin = window.markdownitSub; + md.use(subPlugin); + var supPlugin = window.markdownitSup; + md.use(supPlugin); + var sanitizerPlugin = window.markdownitSanitizer; + md.use(sanitizerPlugin); + // TODO this is a temporary fix // remove it as soon as markdown-it fixes its autolinking feature var linkifyPlugin = window.markdownitDiasporaLinkify; diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index 2e0e17147..c1b6c8160 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -25,10 +25,13 @@ //= require handlebars.runtime //= require posix-bracket-expressions //= require markdown-it -//= require markdown-it-hashtag //= require markdown-it-diaspora-linkify //= require markdown-it-diaspora-mention //= require markdown-it-for-inline +//= require markdown-it-hashtag +//= require markdown-it-sanitizer +//= require markdown-it-sub +//= require markdown-it-sup //= require punycode //= require parse_url //= require clear-form diff --git a/spec/javascripts/app/helpers/text_formatter_spec.js b/spec/javascripts/app/helpers/text_formatter_spec.js index a646388fc..ccbd7d1c3 100644 --- a/spec/javascripts/app/helpers/text_formatter_spec.js +++ b/spec/javascripts/app/helpers/text_formatter_spec.js @@ -154,7 +154,7 @@ describe("app.helpers.textFormatter", function(){ it("correctly encodes to punycode", function() { _.each(this.evilUrls, function(url, num) { - var text = this.formatter( "<" + url + ">" ); + var text = this.formatter(url); expect(text).toContain(this.asciiUrls[num]); }, this); });