(((meta (@ (content . "Zettelmarkup") (name . "title"))) (meta (@ (content . "manual") (name . "role"))) (meta (@ (content . "#manual #zettelmarkup #zettelstore") (name . "tags"))) (meta (@ (content . "zmk") (name . "syntax"))) (meta (@ (content . "00001000000000 00001006000000 00001006036500 00001007040324 00001007903000 00001007906000 00001008000000 00001012920513 00001012920522 00001017000000") (name . "back"))) (meta (@ (content . "00001000000000 00001006000000 00001006036500 00001007040324 00001007903000 00001007906000 00001008000000 00001008010500 00001012920513 00001012920522 00001017000000") (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 . "00001007010000 00001007020000 00001007030000 00001007040000 00001007050000 00001007700000 00001007800000 00001007900000 00001007990000 00001008010000 00001008010500") (name . "forward"))) (meta (@ (content . "en") (name . "lang"))) (meta (@ (content . "EUPL-1.2-or-later") (name . "license"))) (meta (@ (content . "20241212152823") (name . "modified"))) (meta (@ (content . "20241212152823") (name . "published"))) (meta (@ (content . "public") (name . "visibility")))) (p "Zettelmarkup is a rich plain-text based markup language for writing zettel content." " " "Besides the zettel content, Zettelmarkup is also used for specifying the title of a zettel, regardless of the syntax of a zettel.") (p "Zettelmarkup supports the longevity of stored notes by providing a syntax that any person can easily read, as well as a computer." " " "Zettelmarkup can be much easier parsed / consumed by a software compared to other markup languages." " " "Writing a parser for " (a (@ (href . "https://daringfireball.net/projects/markdown/syntax") (rel . "external")) "Markdown") " is quite challenging." " " (a (@ (href . "00001008010500")) "CommonMark") " is an attempt to make it simpler by providing a comprehensive specification, combined with an extra chapter to give hints for the implementation." " " "Zettelmarkup follows some simple principles that anybody who knows how ho write software should be able understand to create an implementation.") (p "Zettelmarkup is a markup language on its own." " " "This is in contrast to Markdown, which is basically a super-set of HTML: every HTML document is a valid Markdown document." (sup (@ (id . "fnref:1")) (a (@ (class . "zs-noteref") (href . "#fn:1") (role . "doc-noteref")) "1")) " " "While HTML is a markup language that will probably last for a long time, it cannot be easily translated to other formats, such as PDF, JSON, or LaTeX." " " "Additionally, it is allowed to embed other languages into HTML, such as CSS or even JavaScript." " " "This could create problems with longevity as well as security problems.") (p "Zettelmarkup is a rich markup language, but it focuses on relatively short zettel content." " " "It allows embedding other content, simple tables, quotations, description lists, and images." " " "It provides a broad range of inline formatting, including " (em "emphasized") ", " (strong "strong") ", " (del () "deleted") " and " (ins "inserted") " text." " " "Footnotes" (sup (@ (id . "fnref:2")) (a (@ (class . "zs-noteref") (href . "#fn:2") (role . "doc-noteref")) "2")) " are supported, links to other zettel and to external material, as well as citation keys." " " "Zettelmarkup allows to include content from other zettel and to embed the result of a search query.") (p "Zettelmarkup might be seen as a proprietary markup language." " " "But if you want to use " (a (@ (href . "00001008010000")) "Markdown/CommonMark") " and you need support for footnotes or tables, you'll end up with proprietary extensions." " " "However, the Zettelstore supports CommonMark as a zettel syntax, so you can mix both Zettelmarkup zettel and CommonMark zettel in one store to get the best of both worlds.") (ul (li (a (@ (href . "00001007010000")) "General principles")) (li (a (@ (href . "00001007020000")) "Basic definitions")) (li (a (@ (href . "00001007030000")) "Block-structured elements")) (li (a (@ (href . "00001007040000")) "Inline-structured element")) (li (a (@ (href . "00001007050000")) "Attributes")) (li (a (@ (href . "00001007700000")) "Query expressions")) (li (a (@ (href . "00001007800000")) "Summary of formatting characters")) (li (a (@ (href . "00001007900000")) "Tutorial")) (li (a (@ (href . "00001007990000")) "Cheat Sheet"))))