Zettelmarkup: Block-Structured Elements

Every markup for blocks-structured elements (“blocks”) begins at the very first position of a line.

There are five kinds of blocks: lists, one-line blocks, line-range blocks, tables, and paragraphs.


In Zettelmarkup, lists themselves are not specified, but list items. A sequence of list items is considered as a list.

Description lists contain two different item types: the term to be described and the description itself. These cannot be combined with other lists.

Ordered lists, unordered lists, and quotation lists can be combined into nested lists.

One-line blocks

Line-range blocks

This kind of blocks encompass at least two lines. To be useful, they encompass more lines. They begin with at least three identical characters at the first position of the beginning line. They end at the line, that contains at least the same number of these identical characters, beginning at the first position of that line. This allows line-range blocks to be nested. Additionally, all other blocks elements are allowed in line-range blocks.


Similar to lists are tables not specified explicitly. A sequence of table rows is considered a table. A table row itself is a sequence of table cells.


Any line that does not conform to another blocks-structured element begins a paragraph. This has the implication that a mistyped syntax element for a block element will be part of the paragraph. For example:

= Heading
Some text follows.

will be rendered in HTML as

= Heading Some text follows.

This is because headings need at least three equal sign character.

A paragraph is essentially a sequence of inline-structured elements. Inline-structured elements cam span more than one line. Paragraphs are separated by empty lines.

If you want to specify a second paragraph inside a list item, or if you want to continue a paragraph on a second and more line within a list item, you must begin the paragraph with a certain number of space characters. The number of space characters depends on the kind of a list and the relevant nesting level.

A line that begins with a space character and which is outside of a list or does not contain the right number of space characters is considered to be part of a paragraph.