Files
Brian Carbone 99921ffc39 runtime(marko): improve syntax highlighting
closes: #20874

Signed-off-by: Brian Carbone <brian@briancarbone.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2026-07-30 18:32:16 +00:00

49 lines
1.2 KiB
Plaintext

// concise mode: custom tags, builtins, statements, scriptlets, blocks
import { fetchItems } from "./api"
$ const person = {
name: "Frank",
}
let/[h, i, , ...j]=[1, 2, 3, 4, 5] as const
const/isLocalized=locale !== baseLocale
const/nodes=input.nodes ??
(typeof parts === "function"
? buildNodes(parts(input.inputs))
: undefined)
bento-cell [
featured
colSpan=2
title=head.title ?? "One platform"
]
link
,rel="alternate"
// a comment may sit between continued attributes
,href=(
translated ? localizeUrl(url, { locale }).href : baseHref
)
,onLoad(e) {
ready = true;
}
input type="text",
value=name checked:=mode === "edit"
if=input.ready
for|item, i| of=fetchItems()
while(i < 10)
my-tag ...[1, 2] ...rest total=base +
tax
await(promise)
return=x instanceof B
@then|result| -- resolved
${`button`} type="button" class=styles.button -- Press me
h${size} -- Dynamic heading
.hero-copy#main/$el -- Shorthand tag
style/styles --
.basket { color: red }
--
p --
An indented text block runs until dedent, with <b>html</b>.
p ---- text after a longer dash run
--
A delimited block is html mode: <b>bold ${person.name}</b> and bare prose.
--
<footer>element bodies stay html mode, so this is plain prose</footer>