diff options
| author | Laurenz <laurmaedje@gmail.com> | 2025-06-23 15:54:52 +0200 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2025-06-23 15:59:22 +0200 |
| commit | bf8ef2a4a5ffa9c30fce9fc254ffcf982634e4c6 (patch) | |
| tree | ead60969ba9f14d0c06de5a0ba5327ae54b565b1 /tests/suite/html/syntax.typ | |
| parent | c2e2fd99f69665e2361a1129dd04121a5b2c61a2 (diff) | |
Properly handle raw text elements
Diffstat (limited to 'tests/suite/html/syntax.typ')
| -rw-r--r-- | tests/suite/html/syntax.typ | 51 |
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>") |
