PARA Paragraph = (PARA InlineElement … ). A paragraph is just a list of inline elements. HEADING Heading = (HEADING Attributes Number InlineElement … ). A heading starts with a possibly empty list of attributes and a number specifying the heading level (1–5). The heading text follows as a sequence of inline elements. THEMATIC Thematic = (THEMATIC Attributes ). ORDERED, UNORDERED, QUOTATION These three symbols are specifying different kinds of lists / enumerations: an ordered list, an unordered list, and a quotation list. Their structure is the same. OrderedList = (ORDERED Attributes ListItem … ). UnorderedList = (UNORDERED Attributes ListItem … ). QuotationList = (QUOTATION Attributes ListItem … ). where ListItem = (ITEM Attributes ItemElement … ). ItemElement = OrderedList | UnorderedList | QuotationList | Paragraph. DESCRIPTION Description = (DESCRIPTION Attributes DescriptionTerm DescriptionDetail DescriptionTerm DescriptionDetail … ). A description is a sequence of one or more terms and details. DescriptionTerm = (TERM Attributes InlineElement … ). A description term is just an inline-structured value. DescriptionDetail = (DETAIL DescriptionEntry … ). where DescriptionEntry = (ENTRY Attributes Paragraph … ). Description details are sequences of entries that contain only paragraphs. From this restriction it follows that, within a description, only inline elements are allowed for content. Nested block elements are forbidden. TABLE Table = (TABLE Attributes TableHeader TableRow … ). A table is a table header and a sequence of table rows. TableHeader = () | TableRow. A table header is either the empty list or a table row. TableRow = (ROW Attributes TableCell … ). A table row contains optional attributes, plus a list of table cells. CELL TableCell = (CELL Attributes InlineElement … ). A table cell contains some attributes and cell content, which is a sequence of inline elements. The attribute align specifies the cell alignment. An attribute value "center" specifies centered aligned cell content. The attribute value "left" specifies left aligned cell content. The attribute value "right" specifies right aligned cell content. In all other cases, a default alignment is assumed. REGION-* The following lists specify different kinds of regions. A region treat a sequence of block elements to be belonging together in certain ways. They have a similar structure. BlockRegion = (REGION-BLOCK Attributes ( BlockElement … ) InlineElement … ). A block region just treats the block to belong in an unspecified way. Typically, the reason is given in the attributes. The inline describes the block. QuoteRegion = (REGION-QUOTE Attributes ( BlockElement … ) InlineElement … ). A block region just treats the block to contain a longer quotation. Attributes may further specify the quotation. The inline typically describes author / source of the quotation. VerseRegion = (REGION-VERSE Attributes ( BlockElement … ) InlineElement … ). A block region just treats the block to contain a verse. Soft line breaks are transformed into hard line breaks to save the structure of the verse / poem. Attributes may further specify something. The inline typically describes author / source of the verse. VERBATIM-* The following lists specifies some literal text of more than one line. The structure is always the same, the initial symbol denotes the actual usage. The content is encoded as a string, most likely to contain control characters that signals the end of a line. CommentVerbatim = (VERBATIM-COMMENT Attributes String ). The string contains text that should be treated as an internal comment not to be interpreted further. EvalVerbatim = (VERBATIM-EVAL Attributes String ). The string contains text that should be evaluated by an (external) software to produce some derived content. HTMLVerbatim = (VERBATIM-HTML Attributes String ). The string contains HTML code. MathVerbatim = (VERBATIM-MATH Attributes String ). The string contains text that should be treated as special code to be interpreted as mathematical formulas. CodeVerbatim = (VERBATIM-CODE Attributes String ). The string contains text that should be treated as (executable) code. ZettelVerbatim = (VERBATIM-ZETTEL Attributes String ). The string contains text that should be treated as (nested) zettel content. BLOB BLOB = (BLOB Attributes String1 String2 InlineElement … ). A BLOB contains an image in block mode. The inline elements states some description. The first string contains the syntax of the image. The second string contains the actual image. If the syntax is svg, then the second string contains the SVG code. Otherwise the (binary) image data is encoded with base64. TRANSCLUDE Transclude = (TRANSCLUDE Attributes Reference InlineElement … ). A transclude list only occurs for a parsed zettel, but not for a evaluated zettel. Evaluating a zettel also means that all transclusions are resolved. Reference denotes the zettel to be transcluded.