summaryrefslogtreecommitdiff
path: root/tests/suite
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2025-06-23 15:54:52 +0200
committerLaurenz <laurmaedje@gmail.com>2025-06-23 15:59:22 +0200
commitbf8ef2a4a5ffa9c30fce9fc254ffcf982634e4c6 (patch)
treeead60969ba9f14d0c06de5a0ba5327ae54b565b1 /tests/suite
parentc2e2fd99f69665e2361a1129dd04121a5b2c61a2 (diff)
Properly handle raw text elements
Diffstat (limited to 'tests/suite')
-rw-r--r--tests/suite/html/syntax.typ51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/suite/html/syntax.typ b/tests/suite/html/syntax.typ
index fb5caf3b..eb1c8699 100644
--- a/tests/suite/html/syntax.typ
+++ b/tests/suite/html/syntax.typ
@@ -10,3 +10,54 @@
#html.pre("hello")
#html.pre("\nhello")
#html.pre("\n\nhello")
+
+--- html-script html ---
+// This should be pretty and indented.
+#html.script(
+ ```js
+ const x = 1
+ const y = 2
+ console.log(x < y, Math.max(1, 2))
+ ```.text,
+)
+
+// This should have extra newlines, but no indent because of the multiline
+// string literal.
+#html.script("console.log(`Hello\nWorld`)")
+
+// This should be untouched.
+#html.script(
+ type: "text/python",
+ ```py
+ x = 1
+ y = 2
+ print(x < y, max(x, y))
+ ```.text,
+)
+
+--- html-style html ---
+// This should be pretty and indented.
+#html.style(
+ ```css
+ body {
+ text: red;
+ }
+ ```.text,
+)
+
+--- html-raw-text-contains-elem html ---
+// Error: 14-32 HTML raw text element cannot have non-text children
+#html.script(html.strong[Hello])
+
+--- html-raw-text-contains-frame html ---
+// Error: 2-29 HTML raw text element cannot have non-text children
+#html.script(html.frame[Ok])
+
+--- html-raw-text-contains-closing-tag html ---
+// Error: 2-32 HTML raw text element cannot contain its own closing tag
+// Hint: 2-32 the sequence `</SCRiPT` appears in the raw text
+#html.script("hello </SCRiPT ")
+
+--- html-escapable-raw-text-contains-closing-tag html ---
+// This is okay because we escape it.
+#html.textarea("hello </textarea>")