(((meta (@ (content . "Syntax of Metadata") (name . "title"))) (meta (@ (content . "manual") (name . "role"))) (meta (@ (content . "#manual #syntax #zettelstore") (name . "tags"))) (meta (@ (content . "zmk") (name . "syntax"))) (meta (@ (content . "00001006000000 00001006020000 00001006031500 00001007701000 00001007702000 00001012053200 00001012054200") (name . "back"))) (meta (@ (content . "00001006000000 00001006020000 00001006031500 00001007701000 00001007702000 00001012053200 00001012054200") (name . "backward"))) (meta (@ (content . "1") (name . "box-number"))) (meta (@ (content . "(c) 2020-present by Detlef Stern ") (name . "copyright"))) (meta (@ (content . "20210126175322") (name . "created"))) (meta (@ (content . "en") (name . "lang"))) (meta (@ (content . "EUPL-1.2-or-later") (name . "license"))) (meta (@ (content . "20240219193158") (name . "modified"))) (meta (@ (content . "20240219193158") (name . "published"))) (meta (@ (content . "public") (name . "visibility")))) (p "The metadata of a zettel is a collection of key-value pairs." " " "The syntax roughly resembles the internal header of an email (" (a (@ (href . "https://tools.ietf.org/html/rfc5322") (rel . "external")) "RFC5322") ").") (p "The key is a sequence of alphanumeric characters, a hyphen-minus character (" (@L (@H "“") (kbd "-") (@H "”")) ", U+002D) is also allowed." " " "It begins at the first position of a new line." " " "Uppercase letters of a key are translated to their lowercase equivalence.") (p "A key is separated from its value either by") (ul (li "a colon character (" (@L (@H "“") (kbd ":") (@H "”")) "),") (li "a non-empty sequence of space characters,") (li "a sequence of space characters, followed by a colon, followed by a sequence of space characters.")) (p "A value is a sequence of printable characters." " " "If the value should be continued in the following line, that following line (" (@L (@H "“") "continuation line" (@H "”")) ") must begin with a non-empty sequence of space characters." " " "The rest of the following line will be interpreted as the next part of the value." " " "There can be more than one continuation line for a value.") (p "A non-continuation line that contains a possibly empty sequence of characters, followed by the percent sign character (" (@L (@H "“") (kbd "%") (@H "”")) ") is treated as a comment line." " " "It will be ignored.") (p "Parsing metadata ends, if an empty line is found or if a line with at least three hyphen-minus characters is found.") (p "Some examples:") (pre (code (@ (class . "language-meta")) "title1:The Title\n title-2 : Another title\ntitle-3: A wrapped\n title\ntitle-4: A\n wrapped\n title\n with\n more\n than\n one\n continuation\n line\n% A comment line\n % Another comment line.\n\nNo metadata anymore, because of the empty line.")))