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.
- Headings allow to structure the content of a zettel.
- The horizontal rule signals a thematic break
- A transclusion embeds the content of one zettel into another.
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.
- Verbatim blocks do not interpret their content,
- Quotation blocks specify a block-length quotations,
- Verse blocks allow to enter poetry, lyrics and similar text, where line endings are important,
- Region blocks just mark regions, e.g. for common formatting,
- Comment blocks allow to enter text that will be ignored when rendered.
- Evaluation blocks specify some content to be evaluated by either Zettelstore or external software.
- Math-mode blocks can be used to enter mathematical formulas / equations.
- Inline-Zettel blocks provide a mechanism to specify zettel content with a new syntax without creating a new zettel.
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.