37 lines
772 B
Text
37 lines
772 B
Text
|
// defined base element
|
||
|
document [
|
||
|
title: "example",
|
||
|
lang: "de",
|
||
|
] {
|
||
|
h1.class "some content";
|
||
|
p {
|
||
|
"this is some text and contains ";
|
||
|
a [ href: "https://example.com" ] "a link";
|
||
|
".";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// attributes are by default parsed as:
|
||
|
// key: value
|
||
|
// and are comma seperated.
|
||
|
//
|
||
|
// items can define custom parsers for attributes
|
||
|
|
||
|
// content is by default parsed as semicolon seperated further item structures
|
||
|
|
||
|
// plain text is just plain text
|
||
|
|
||
|
// definitions have a : after the name
|
||
|
// definitions only allow default parsing
|
||
|
// @slot is the attribute that defines the element body, but can be overwritten
|
||
|
navItem: [
|
||
|
dest: string,
|
||
|
] {
|
||
|
li.nav-item {
|
||
|
// use attributes using @
|
||
|
// interpolate in @{} blocks
|
||
|
a[ href: "https://example.com@{dest}" ] @dest;
|
||
|
}
|
||
|
}
|
||
|
|