File tree 2 files changed +16
-0
lines changed
spec/controllers/concerns/arclight
2 files changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -26,11 +26,19 @@ def transform_ead_to_html(value)
26
26
def ead_to_html_scrubber
27
27
Loofah ::Scrubber . new do |node |
28
28
format_render_attributes ( node ) if node . attr ( 'render' ) . present?
29
+ convert_to_span ( node ) if CONVERT_TO_SPAN_TAGS . include? node . name
29
30
format_lists ( node ) if %w[ list chronlist ] . include? node . name
30
31
node
31
32
end
32
33
end
33
34
35
+ # Tags that should be converted to <span> tags because of formatting conflicts between XML and HTML
36
+ CONVERT_TO_SPAN_TAGS = [ 'title' ] . freeze
37
+
38
+ def convert_to_span ( node )
39
+ node . name = 'span'
40
+ end
41
+
34
42
def condense_whitespace ( str )
35
43
str . squish . strip . gsub ( />[\n \s ]+</ , '><' )
36
44
end
Original file line number Diff line number Diff line change @@ -40,6 +40,14 @@ class TestController
40
40
end
41
41
end
42
42
43
+ describe 'converts conflicting tags' do
44
+ # this is needed because browsers apply display:none to <title> tags by default
45
+ it 'converts <title> tags to <span> tags' do
46
+ content = helper . render_html_tags ( value : %w[ <title>Title</title> ] )
47
+ expect ( content ) . to eq_ignoring_whitespace '<span>Title</span>'
48
+ end
49
+ end
50
+
43
51
describe 'nodes with @render attributes' do
44
52
it 'altrender custom -> html class' do
45
53
content = helper . render_html_tags ( value : [ '<emph render="altrender" altrender="my-custom-class">special text</emph>' ] )
You can’t perform that action at this time.
0 commit comments