summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-07-09 21:31:07 -0400
committerDouwe Maan <douwe@selenight.nl>2016-07-09 21:31:11 -0400
commitec4860a8f4be8f4fbe8f6c29df5778310c1c3c4f (patch)
tree360672e4e6fe8f7fe8ecaca9e1fa362415569c71
parent2fcb2b339bbaad7a04414363eed81d2af82674a6 (diff)
downloadgitlab-ce-blockquote-fence-filter.tar.gz
Add more comments to regexblockquote-fence-filter
-rw-r--r--Gemfile.lock30
-rw-r--r--lib/banzai/filter/blockquote_fence_filter.rb41
-rw-r--r--spec/fixtures/blockquote_fence_after.md2
-rw-r--r--spec/fixtures/blockquote_fence_before.md2
4 files changed, 48 insertions, 27 deletions
diff --git a/Gemfile.lock b/Gemfile.lock
index 055596b056f..a394e49e95b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -806,7 +806,7 @@ DEPENDENCIES
activerecord-session_store (~> 1.0.0)
acts-as-taggable-on (~> 3.4)
addressable (~> 2.3.8)
- after_commit_queue
+ after_commit_queue (~> 1.3.0)
akismet (~> 2.0)
allocations (~> 1.0)
asana (~> 0.4.0)
@@ -815,15 +815,15 @@ DEPENDENCIES
awesome_print (~> 1.2.0)
babosa (~> 1.0.2)
base32 (~> 0.3.0)
- benchmark-ips
+ benchmark-ips (~> 2.3.0)
better_errors (~> 1.0.1)
binding_of_caller (~> 0.7.2)
bootstrap-sass (~> 3.3.0)
brakeman (~> 3.3.0)
browser (~> 2.2)
- bullet
- bundler-audit
- byebug
+ bullet (~> 5.0.0)
+ bundler-audit (~> 0.5.0)
+ byebug (~> 8.2.1)
capybara (~> 2.6.2)
capybara-screenshot (~> 1.0.0)
carrierwave (~> 0.10.0)
@@ -844,8 +844,8 @@ DEPENDENCIES
email_spec (~> 1.6.0)
factory_girl_rails (~> 4.6.0)
ffaker (~> 2.0.0)
- flay
- flog
+ flay (~> 2.6.1)
+ flog (~> 4.3.2)
fog-aws (~> 0.9)
fog-azure (~> 0.0)
fog-core (~> 1.40)
@@ -854,7 +854,7 @@ DEPENDENCIES
fog-openstack (~> 0.1)
fog-rackspace (~> 0.1.1)
font-awesome-rails (~> 4.6.1)
- foreman
+ foreman (~> 0.78.0)
fuubar (~> 2.0.0)
gemnasium-gitlab-service (~> 0.2)
gemojione (~> 2.6)
@@ -881,9 +881,9 @@ DEPENDENCIES
jquery-ui-rails (~> 5.0.0)
jwt
kaminari (~> 0.17.0)
- knapsack
+ knapsack (~> 1.11.0)
letter_opener_web (~> 1.3.0)
- license_finder
+ license_finder (~> 2.1.0)
licensee (~> 8.0.0)
loofah (~> 2.0.3)
mail_room (~> 0.8)
@@ -916,19 +916,19 @@ DEPENDENCIES
pg (~> 0.18.2)
poltergeist (~> 1.9.0)
premailer-rails (~> 1.9.0)
- pry-rails
+ pry-rails (~> 0.3.4)
rack-attack (~> 4.3.1)
rack-cors (~> 0.4.0)
rack-oauth2 (~> 1.2.1)
rails (= 4.2.6)
rails-deprecated_sanitizer (~> 1.0.3)
rainbow (~> 2.1.0)
- rblineprof
+ rblineprof (~> 0.3.6)
rdoc (~> 3.6)
recaptcha (~> 3.0)
redcarpet (~> 3.3.3)
redis (~> 3.2)
- redis-namespace
+ redis-namespace (~> 1.5.2)
redis-rails (~> 4.0.0)
request_store (~> 1.3.0)
rerun (~> 0.11.0)
@@ -936,7 +936,7 @@ DEPENDENCIES
rouge (~> 1.11)
rqrcode-rails3 (~> 0.1.7)
rspec-rails (~> 3.5.0)
- rspec-retry
+ rspec-retry (~> 0.4.5)
rubocop (~> 0.40.0)
rubocop-rspec (~> 1.5.0)
ruby-fogbugz (~> 0.2.1)
@@ -948,7 +948,7 @@ DEPENDENCIES
select2-rails (~> 3.5.9)
sentry-raven (~> 1.1.0)
settingslogic (~> 2.0.9)
- sham_rack
+ sham_rack (~> 1.3.6)
shoulda-matchers (~> 2.8.0)
sidekiq (~> 4.0)
sidekiq-cron (~> 0.4.0)
diff --git a/lib/banzai/filter/blockquote_fence_filter.rb b/lib/banzai/filter/blockquote_fence_filter.rb
index fb815c2d837..30fbe5cc82d 100644
--- a/lib/banzai/filter/blockquote_fence_filter.rb
+++ b/lib/banzai/filter/blockquote_fence_filter.rb
@@ -5,29 +5,50 @@ module Banzai
(?<code>
# Code blocks:
# ```
- # Anything, including ignored `>>>` blocks
+ # Anything, including `>>>` blocks which are ignored by this filter
# ```
- ^```.+?\n```$
+
+ ^```
+ .+?
+ \n```$
)
|
(?<html>
- # HTML:
+ # HTML block:
# <tag>
- # Anything, including ignored `>>>` blocks
+ # Anything, including `>>>` blocks which are ignored by this filter
# </tag>
- ^<[^>]+?>.+?\n<\/[^>]+?>$
+
+ ^<[^>]+?>\n
+ .+?
+ \n<\/[^>]+?>$
)
|
- (
- ^>>>\n(?<quote>
+ (?:
+ # Blockquote:
+ # >>>
+ # Anything, including code and HTML blocks
+ # >>>
+
+ ^>>>\n
+ (?<quote>
(?:
- (?!^```|^<[^>]+?>).
+ # Any character that doesn't introduce a code or HTML block
+ (?!
+ ^```
+ |
+ ^<[^>]+?>\n
+ )
+ .
|
+ # A code block
\g<code>
|
+ # An HTML block
\g<html>
- )
- +?)\n>>>$
+ )+?
+ )
+ \n>>>$
)
}mx.freeze
diff --git a/spec/fixtures/blockquote_fence_after.md b/spec/fixtures/blockquote_fence_after.md
index 5ab136f76c3..2652a842c0e 100644
--- a/spec/fixtures/blockquote_fence_after.md
+++ b/spec/fixtures/blockquote_fence_after.md
@@ -8,7 +8,7 @@ Single `>>>` inside code block:
Double `>>>` inside code block:
-```
+```txt
# Code
>>>
# Code
diff --git a/spec/fixtures/blockquote_fence_before.md b/spec/fixtures/blockquote_fence_before.md
index e6689b6c5dd..d52eec72896 100644
--- a/spec/fixtures/blockquote_fence_before.md
+++ b/spec/fixtures/blockquote_fence_before.md
@@ -8,7 +8,7 @@ Single `>>>` inside code block:
Double `>>>` inside code block:
-```
+```txt
# Code
>>>
# Code