From 4da98cdcfe15ccc6388a4e9564020f78387153af Mon Sep 17 00:00:00 2001 From: Sam Date: Mon, 24 Jul 2017 18:36:17 -0400 Subject: [PATCH] FIX: allow bbcode to be unquoted for default --- .../discourse-markdown/bbcode-block.js.es6 | 9 +++---- spec/components/pretty_text_spec.rb | 24 ++++++++++++++++++- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/pretty-text/engines/discourse-markdown/bbcode-block.js.es6 b/app/assets/javascripts/pretty-text/engines/discourse-markdown/bbcode-block.js.es6 index 8c4ac0e2808..db3931f2422 100644 --- a/app/assets/javascripts/pretty-text/engines/discourse-markdown/bbcode-block.js.es6 +++ b/app/assets/javascripts/pretty-text/engines/discourse-markdown/bbcode-block.js.es6 @@ -11,7 +11,7 @@ function trailingSpaceOnly(src, start, max) { return true; } -const ATTR_REGEX = /((([a-z0-9]*)\s*)=)(["“”'].*["“”']|\S+)/ig; +const ATTR_REGEX = /^\s*=(.+)$|((([a-z0-9]*)\s*)=)(["“”'].*["“”']|\S+)/ig; // parse a tag [test a=1 b=2] to a data structure // {tag: "test", attrs={a: "1", b: "2"} @@ -76,12 +76,13 @@ export function parseBBCodeTag(src, start, max, multiline) { let match, key, val; while(match = ATTR_REGEX.exec(raw)) { - key = match[3]; - if (key === '') { + if (match[1]) { key = '_default'; + } else { + key = match[4]; } - val = match[4]; + val = match[1] || match[5]; if (val) { val = val.trim(); diff --git a/spec/components/pretty_text_spec.rb b/spec/components/pretty_text_spec.rb index 5a5f91d38ad..7853babee63 100644 --- a/spec/components/pretty_text_spec.rb +++ b/spec/components/pretty_text_spec.rb @@ -47,7 +47,29 @@ describe PrettyText do expect(cook("[quote=\"EvilTrout, post:2, topic:#{topic.id}\"]\nddd\n[/quote]", topic_id: 1)).to eq(n(expected)) end - it "indifferent about curlies" do + it "indifferent about missing quotations" do + md = <<~MD + [quote=#{user.username}, post:123, topic:456, full:true] + + ddd + + [/quote] + MD + html = <<~HTML + + HTML + + expect(PrettyText.cook(md)).to eq(html.strip) + end + + it "indifferent about curlies and no curlies" do md = <<~MD [quote=“#{user.username}, post:123, topic:456, full:true”]