diff --git a/plugins/discourse-cronos/assets/javascripts/discourse/components/discourse-cronos-create-form.js.es6 b/plugins/discourse-cronos/assets/javascripts/discourse/components/discourse-cronos-create-form.js.es6 index e7b61353526..d873c5b643d 100644 --- a/plugins/discourse-cronos/assets/javascripts/discourse/components/discourse-cronos-create-form.js.es6 +++ b/plugins/discourse-cronos/assets/javascripts/discourse/components/discourse-cronos-create-form.js.es6 @@ -73,12 +73,11 @@ export default Ember.Component.extend({ }, getTextConfig(config) { - let text = "[discourse-cronos "; - if (config.recurring) text += `recurring=${config.recurring};`; - text += `time=${config.time};`; - text += `date=${config.date};`; - text += `format=${config.format};`; - text += `timezones=${config.timezones.join("|")};`; + let text = `[date=${config.date} `; + if (config.recurring) text += `recurring=${config.recurring} `; + text += `time=${config.time} `; + text += `format=${config.format} `; + text += `timezones="${config.timezones.join("|")}"`; text += `]`; return text; }, diff --git a/plugins/discourse-cronos/assets/javascripts/lib/discourse-markdown/discourse-cronos.js.es6 b/plugins/discourse-cronos/assets/javascripts/lib/discourse-markdown/discourse-cronos.js.es6 index d7d306edd5c..5e38a3fbba4 100644 --- a/plugins/discourse-cronos/assets/javascripts/lib/discourse-markdown/discourse-cronos.js.es6 +++ b/plugins/discourse-cronos/assets/javascripts/lib/discourse-markdown/discourse-cronos.js.es6 @@ -1,8 +1,4 @@ -import { registerOption } from 'pretty-text/pretty-text'; - -registerOption((siteSettings, opts) => { - opts.features['discourse-cronos'] = !!siteSettings.discourse_cronos_enabled; -}); +import { parseBBCodeTag } from 'pretty-text/engines/discourse-markdown/bbcode-block'; function addcronos(buffer, matches, state) { let token; @@ -14,11 +10,12 @@ function addcronos(buffer, matches, state) { timezones: "" }; - const options = matches[1].split(";"); - options.forEach((option) => { - let o = option.split("="); - config[o[0]] = o[1]; - }); + let parsed = parseBBCodeTag("[date date" + matches[1] + "]", 0, matches[1].length + 11); + + config.date = parsed.attrs.date; + config.time = parsed.attrs.time; + config.format = parsed.attrs.format || config.format; + config.timezones = parsed.attrs.timezones || config.timezones; token = new state.Token('a_open', 'a', 1); token.attrs = [ @@ -67,7 +64,7 @@ export function setup(helper) { helper.registerPlugin(md => { const rule = { - matcher: /\[discourse-cronos (.*?)\]/, + matcher: /\[date(.*?)\]/, onMatch: addcronos }; diff --git a/plugins/discourse-cronos/spec/lib/pretty_text_spec.rb b/plugins/discourse-cronos/spec/lib/pretty_text_spec.rb index 2c346eb4697..ad1906f35c4 100644 --- a/plugins/discourse-cronos/spec/lib/pretty_text_spec.rb +++ b/plugins/discourse-cronos/spec/lib/pretty_text_spec.rb @@ -4,7 +4,7 @@ describe PrettyText do it 'supports inserting date' do freeze_time cooked = PrettyText.cook <<~MD - [discourse-cronos time=22:00;date=2018-05-08;format=LLL;timezones=Europe/Paris|America/Los_Angeles;][/discourse-cronos] + [date=2018-05-08 time=22:00 format=LLL timezones="Europe/Paris|America/Los_Angeles"] MD expect(cooked).to include('class="discourse-cronos"')