diff options
Diffstat (limited to 'lib/banzai/filter/references/reference_cache.rb')
-rw-r--r-- | lib/banzai/filter/references/reference_cache.rb | 11 |
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 |