diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-06-26 13:57:17 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-06-26 13:57:17 +0000 |
commit | b33a4da342c765218ee4fb4e6d274382b2a77f08 (patch) | |
tree | 44303bc5b647a8e590280b463789ffb5ac0fd9dc | |
parent | 0fbbbc5f2255b8570123cd8174f623a3ba0149ca (diff) | |
parent | 990a2a7b1d9be68f233a821b78abba06c35c03e8 (diff) | |
download | gitlab-ce-b33a4da342c765218ee4fb4e6d274382b2a77f08.tar.gz |
Merge branch '48269-wiki-page-returns-error-code-502' into 'master'
Resolve "Wiki page returns error code 502"
Closes #48269
See merge request gitlab-org/gitlab-ce!20174
-rw-r--r-- | changelogs/unreleased/48269-wiki-page-returns-error-code-502.yml | 5 | ||||
-rw-r--r-- | lib/banzai/filter/gollum_tags_filter.rb | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/changelogs/unreleased/48269-wiki-page-returns-error-code-502.yml b/changelogs/unreleased/48269-wiki-page-returns-error-code-502.yml new file mode 100644 index 00000000000..d3830e5b8c6 --- /dev/null +++ b/changelogs/unreleased/48269-wiki-page-returns-error-code-502.yml @@ -0,0 +1,5 @@ +--- +title: Remove performance bottleneck preventing large wiki pages from displaying +merge_request: 20174 +author: +type: performance diff --git a/lib/banzai/filter/gollum_tags_filter.rb b/lib/banzai/filter/gollum_tags_filter.rb index 4bc82ecb4d6..bb9f488cd87 100644 --- a/lib/banzai/filter/gollum_tags_filter.rb +++ b/lib/banzai/filter/gollum_tags_filter.rb @@ -56,10 +56,12 @@ module Banzai # Pattern to match allowed image extensions ALLOWED_IMAGE_EXTENSIONS = /.+(jpg|png|gif|svg|bmp)\z/i.freeze + # Do not perform linking inside these tags. + IGNORED_ANCESTOR_TAGS = %w(pre code tt).to_set + def call doc.search(".//text()").each do |node| - # Do not perform linking inside <code> blocks - next unless node.ancestors('code').empty? + next if has_ancestor?(node, IGNORED_ANCESTOR_TAGS) # A Gollum ToC tag is `[[_TOC_]]`, but due to MarkdownFilter running # before this one, it will be converted into `[[<em>TOC</em>]]`, so it |