Zettelmarkup manual manual zettelmarkup zettelstore zmk 00001000000000 00001006000000 00001007040324 00001007903000 00001007906000 00001008000000 00001012920513 00001012920522 00001017000000 00001000000000 00001006000000 00001007040324 00001007903000 00001007906000 00001008000000 00001008010500 00001012920513 00001012920522 00001017000000 1 (c) 2020-present by Detlef Stern 20210126175322 00001007010000 00001007020000 00001007030000 00001007040000 00001007050000 00001007700000 00001007800000 00001007900000 00001007990000 00001008010000 00001008010500 en EUPL-1.2-or-later 20251208182700 20251208182700 public Zettelmarkup is a rich, plaintext-based markup language designed for writing zettel content. One of the key benefits of Zettelmarkup is its focus on longevity. It provides a syntax that is easy for both humans and computers to read, ensuring that your notes remain accessible and usable over time. Compared to other markup languages, Zettelmarkup is simpler to parse and work with. Writing a parser for Markdown, for example, can be quite complex. CommonMark tries to address this by providing a clear, comprehensive specification, but even with that, implementing a parser can still be a challenge. Zettelmarkup, on the other hand, is built around a few straightforward principles that anyone familiar with software development can easily understand and implement. Its simplicity ensures that it remains a practical and long-lasting solution for note-taking and knowledge management. 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. To be precise: the content of the of each HTML document is a valid Markdown document. 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. 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 emphasized, strong, deleted and inserted text. Footnotes like this are supported, links to other zettel and to external material, as well as citation keys. Zettelmarkup allows you to include content from other zettel and to embed the results of a search query. Zettelmarkup might be seen as a proprietary markup language. But if you want to use 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. General principles Basic definitions Block-structured elements Inline-structured element Attributes Query expressions Summary of formatting characters Tutorial Cheat Sheet