summaryrefslogtreecommitdiff
path: root/lib/banzai/filter/references/reference_cache.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/banzai/filter/references/reference_cache.rb')
-rw-r--r--lib/banzai/filter/references/reference_cache.rb11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/banzai/filter/references/reference_cache.rb b/lib/banzai/filter/references/reference_cache.rb
index b2d47aba2d6..259958f1598 100644
--- a/lib/banzai/filter/references/reference_cache.rb
+++ b/lib/banzai/filter/references/reference_cache.rb
@@ -7,9 +7,10 @@ module Banzai
include Gitlab::Utils::StrongMemoize
include RequestStoreReferenceCache
- def initialize(filter, context)
+ def initialize(filter, context, result)
@filter = filter
@context = context
+ @result = result || {}
end
def load_reference_cache(nodes)
@@ -166,7 +167,7 @@ module Banzai
private
- attr_accessor :filter, :context
+ attr_accessor :filter, :context, :result
delegate :project, :group, :parent, :parent_type, to: :filter
@@ -184,7 +185,11 @@ module Banzai
end
def prepare_doc_for_scan(doc)
- html = doc.to_html
+ html = if Feature.enabled?(:reference_cache_memoization, project, default_enabled: :yaml)
+ result[:rendered_html] ||= doc.to_html
+ else
+ doc.to_html
+ end
filter.requires_unescaping? ? unescape_html_entities(html) : html
end