(zettel (meta (backward "00001012931000") (box-number "1") (created "20230403161803") (forward "00001012931000 00001012931400 00001012931600 00001012931900") (modified "20240123120132") (published "20240123120132") (role "manual") (syntax "zmk") (tags "#api #manual #reference #zettelstore") (title "Encoding of Sz Block Elements")) (rights 4) (encoding "") (content "=== ''PARA''\n:::syntax\n__Paragraph__ **=** ''(PARA'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nA paragraph is just a list of inline elements.\n\n=== ''HEADING''\n:::syntax\n__Heading__ **=** ''(HEADING'' Number [[__Attributes__|00001012931000#attribute]] String,,1,, String,,2,, [[__InlineElement__|00001012931600]] … '')''.\n:::\nA heading consists of a number, which specifies its level (1 -- 5), its optional attributes.\nThe first string is a \"\"slug\"\" of the heading text, i.e. transformed it to lower case, replaced space character with minus sign, and some more.\nThe second string is the slug, but made unique for the whole zettel.\nThen the heading text follows as a sequence of inline elements.\n\n=== ''THEMATIC''\n:::syntax\n__Thematic__ **=** ''(THEMATIC'' [[__Attributes__|00001012931000#attribute]] '')''.\n:::\n\n=== ''ORDERED'', ''UNORDERED'', ''QUOTATION''\nThese three symbols are specifying different kinds of lists / enumerations: an ordered list, an unordered list, and a quotation list.\nTheir structure is the same.\n\n:::syntax\n__OrderedList__ **=** ''(ORDERED'' __ListElement__ … '')''.\n\n__UnorderedList__ **=** ''(UNORDERED'' __ListElement__ … '')''.\n\n__QuotationList__ **=** ''(QUOTATION'' __ListElement__ … '')''.\n:::\n\n:::syntax\n__ListElement__ **=** [[__Block__|00001012931000#block]] **|** [[__Inline__|00001012931000#inline]].\n:::\nA list element is either a block or an inline.\nIf it is a block, it may contain a nested list.\n=== ''DESCRIPTION''\n:::syntax\n__Description__ **=** ''(DESCRIPTION'' __DescriptionTerm__ __DescriptionValues__ __DescriptionTerm__ __DescriptionValues__ … '')''.\n:::\nA description is a sequence of one ore more terms and values.\n\n:::syntax\n__DescriptionTerm__ **=** ''('' [[__InlineElement__|00001012931600]] … '')''.\n:::\nA description term is just an inline-structured value.\n\n:::syntax\n__DescriptionValues__ **=** ''(BLOCK'' [[__Block__|00001012931000#block]] … '')''.\n:::\nDescription values are sequences of blocks.\n\n=== ''TABLE''\n:::syntax\n__Table__ **=** ''(TABLE'' __TableHeader__ __TableRow__ … '')''.\n:::\nA table is a table header and a sequence of table rows.\n\n:::syntax\n__TableHeader__ **=** ''()'' **|** ''('' __TableCell__ … '')''.\n:::\nA table header is either the empty list or a list of table cells.\n\n:::syntax\n__TableRow__ **=** ''('' __TableCell__ … '')''.\n:::\nA table row is a list of table cells.\n\n=== ''CELL'', ''CELL-*''\nThere are four kinds of table cells, one for each possible cell alignment.\nThe structure is the same for all kind.\n\n:::syntax\n__TableCell__ **=** __DefaultCell__ **|** __CenterCell__ **|** __LeftCell__ **|** __RightCell__.\n:::\n\n:::syntax\n__DefaultCell__ **=** ''(CELL'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nThe cell content, specified by the sequence of inline elements, used the default alignment.\n\n:::syntax\n__CenterCell__ **=** ''(CELL-CENTER'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nThe cell content, specified by the sequence of inline elements, is centered aligned.\n\n:::syntax\n__LeftCell__ **=** ''(CELL-LEFT'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nThe cell content, specified by the sequence of inline elements, is left aligned.\n\n:::syntax\n__RightCell__ **=** ''(CELL-RIGHT'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nThe cell content, specified by the sequence of inline elements, is right aligned.\n\n=== ''REGION-*''\nThe following lists specifies different kinds of regions.\nA region treat a sequence of block elements to be belonging together in certain ways.\nThe have a similar structure.\n\n:::syntax\n__BlockRegion__ **=** ''(REGION-BLOCK'' [[__Attributes__|00001012931000#attribute]] ''('' [[__BlockElement__|00001012931400]] … '')'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nA block region just treats the block to belong in an unspecified way.\nTypically, the reason is given in the attributes.\nThe inline describes the block.\n\n:::syntax\n__QuoteRegion__ **=** ''(REGION-QUOTE'' [[__Attributes__|00001012931000#attribute]] ''('' [[__BlockElement__|00001012931400]] … '')'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nA block region just treats the block to contain a longer quotation.\nAttributes may further specify the quotation.\nThe inline typically describes author / source of the quotation.\n\n:::syntax\n__VerseRegion__ **=** ''(REGION-VERSE'' [[__Attributes__|00001012931000#attribute]] ''('' [[__BlockElement__|00001012931400]] … '')'' [[__InlineElement__|00001012931600]] … '')''.\n:::\nA block region just treats the block to contain a verse.\nSoft line break are transformed into hard line breaks to save the structure of the verse / poem.\nAttributes may further specify something.\nThe inline typically describes author / source of the verse.\n\n=== ''VERBATIM-*''\nThe following lists specifies some literal text of more than one line.\nThe structure is always the same, the initial symbol denotes the actual usage.\nThe content is encoded as a string, most likely to contain control characters that signals the end of a line.\n\n:::syntax\n__CommentVerbatim__ **=** ''(VERBATIM-COMMENT'' [[__Attributes__|00001012931000#attribute]] String '')''.\n:::\nThe string contains text that should be treated as an internal comment not to be interpreted further.\n\n:::syntax\n__EvalVerbatim__ **=** ''(VERBATIM-EVAL'' [[__Attributes__|00001012931000#attribute]] String '')''.\n:::\nThe string contains text that should be evaluated by an (external) software to produce some derived content.\n\n:::syntax\n__HTMLVerbatim__ **=** ''(VERBATIM-HTML'' [[__Attributes__|00001012931000#attribute]] String '')''.\n:::\nThe string contains HTML code.\n\n:::syntax\n__MathVerbatim__ **=** ''(VERBATIM-MATH'' [[__Attributes__|00001012931000#attribute]] String '')''.\n:::\nThe string contains text that should be treated as special code to be interpreted as mathematical formulas.\n\n:::syntax\n__CodeVerbatim__ **=** ''(VERBATIM-CODE'' [[__Attributes__|00001012931000#attribute]] String '')''.\n:::\nThe string contains text that should be treated as (executable) code.\n\n:::syntax\n__ZettelVerbatim__ **=** ''(VERBATIM-ZETTEL'' [[__Attributes__|00001012931000#attribute]] String '')''.\n:::\nThe string contains text that should be treated as (nested) zettel content.\n\n=== ''BLOB''\n:::syntax\n__BLOB__ **=** ''(BLOB'' ''('' [[__InlineElement__|00001012931600]] … '')'' String,,1,, String,,2,, '')''.\n:::\nA BLOB contains an image in block mode.\nThe inline elements states some description.\nThe first string contains the syntax of the image.\nThe second string contains the actual image.\nIf the syntax is \"\"SVG\"\", then the second string contains the SVG code.\nOtherwise the (binary) image data is encoded with base64.\n\n=== ''TRANSCLUDE''\n:::syntax\n__Transclude__ **=** ''(TRANSCLUDE'' [[__Attributes__|00001012931000#attribute]] [[__Reference__|00001012931900]] '')''.\n:::\nA transclude list only occurs for a parsed zettel, but not for a evaluated zettel.\nEvaluating a zettel also means that all transclusions are resolved.\n\n__Reference__ denotes the zettel to be transcluded."))