diff --git a/lib/herb/engine/debug_visitor.rb b/lib/herb/engine/debug_visitor.rb
index 445263115..8226276a7 100644
--- a/lib/herb/engine/debug_visitor.rb
+++ b/lib/herb/engine/debug_visitor.rb
@@ -301,7 +301,7 @@ def in_script_or_style_context?
end
def in_excluded_context?
- excluded_tags = ["script", "style", "head", "textarea", "pre"]
+ excluded_tags = ["script", "style", "head", "textarea", "pre", "svg", "math"]
return true if excluded_tags.any? { |tag| @element_stack.include?(tag) }
return true if @erb_block_stack.any? { |node| javascript_tag?(node.content.value.strip) }
diff --git a/test/engine/debug_mode_test.rb b/test/engine/debug_mode_test.rb
index 11d12f16f..92ee59572 100644
--- a/test/engine/debug_mode_test.rb
+++ b/test/engine/debug_mode_test.rb
@@ -402,5 +402,78 @@ class DebugModeTest < Minitest::Spec
assert_compiled_snapshot(template, debug: true)
end
+
+ test "svg content erb expressions do NOT get debug spans" do
+ template = <<~ERB
+
+ ERB
+
+ assert_compiled_snapshot(template, debug: true)
+ end
+
+ test "svg with defs and style erb expressions do NOT get debug spans" do
+ template = <<~ERB
+
+ ERB
+
+ assert_compiled_snapshot(template, debug: true)
+ end
+
+ test "nested svg inside div erb expressions do NOT get debug spans inside svg" do
+ template = <<~ERB
+
+
<%= @chart_title %>
+
+
<%= @description %>
+
+ ERB
+
+ assert_compiled_snapshot(template, debug: true, filename: "test.html.erb")
+ end
+
+ test "math content erb expressions do NOT get debug spans" do
+ template = <<~ERB
+
+ ERB
+
+ assert_compiled_snapshot(template, debug: true)
+ end
+
+ test "nested math inside div erb expressions do NOT get debug spans inside math" do
+ template = <<~ERB
+
+
<%= @equation_name %>
+
+
+ ERB
+
+ assert_compiled_snapshot(template, debug: true, filename: "test.html.erb")
+ end
end
end
diff --git a/test/snapshots/engine/debug_mode_test/test_0047_svg_content_erb_expressions_do_NOT_get_debug_spans_abd11745e9db86296002411c6c32107d.txt b/test/snapshots/engine/debug_mode_test/test_0047_svg_content_erb_expressions_do_NOT_get_debug_spans_abd11745e9db86296002411c6c32107d.txt
new file mode 100644
index 000000000..144851a72
--- /dev/null
+++ b/test/snapshots/engine/debug_mode_test/test_0047_svg_content_erb_expressions_do_NOT_get_debug_spans_abd11745e9db86296002411c6c32107d.txt
@@ -0,0 +1,10 @@
+---
+source: "Engine::DebugModeTest#test_0047_svg content erb expressions do NOT get debug spans"
+input: "{source: \"\\n\", options: {debug: true}}"
+---
+_buf = ::String.new; _buf << '
+'.freeze;
+_buf.to_s
diff --git a/test/snapshots/engine/debug_mode_test/test_0048_svg_with_defs_and_style_erb_expressions_do_NOT_get_debug_spans_ee142cee09770f1e7abd1bba545ccfbf.txt b/test/snapshots/engine/debug_mode_test/test_0048_svg_with_defs_and_style_erb_expressions_do_NOT_get_debug_spans_ee142cee09770f1e7abd1bba545ccfbf.txt
new file mode 100644
index 000000000..59492746e
--- /dev/null
+++ b/test/snapshots/engine/debug_mode_test/test_0048_svg_with_defs_and_style_erb_expressions_do_NOT_get_debug_spans_ee142cee09770f1e7abd1bba545ccfbf.txt
@@ -0,0 +1,16 @@
+---
+source: "Engine::DebugModeTest#test_0048_svg with defs and style erb expressions do NOT get debug spans"
+input: "{source: \"\\n\", options: {debug: true}}"
+---
+_buf = ::String.new; _buf << '
+'.freeze;
+_buf.to_s
diff --git a/test/snapshots/engine/debug_mode_test/test_0049_nested_svg_inside_div_erb_expressions_do_NOT_get_debug_spans_inside_svg_899e55a5b972596a5c3ec95a4b0bf2df.txt b/test/snapshots/engine/debug_mode_test/test_0049_nested_svg_inside_div_erb_expressions_do_NOT_get_debug_spans_inside_svg_899e55a5b972596a5c3ec95a4b0bf2df.txt
new file mode 100644
index 000000000..9e43fe0e3
--- /dev/null
+++ b/test/snapshots/engine/debug_mode_test/test_0049_nested_svg_inside_div_erb_expressions_do_NOT_get_debug_spans_inside_svg_899e55a5b972596a5c3ec95a4b0bf2df.txt
@@ -0,0 +1,14 @@
+---
+source: "Engine::DebugModeTest#test_0049_nested svg inside div erb expressions do NOT get debug spans inside svg"
+input: "{source: \"