(zettel (meta (back "00001012931000") (backward "00001012931000") (box-name "manual") (created "20230403161803") (forward "00001012931400 00001012931600 00001012931900") (modified "20260723141805") (published "20260723141805") (role "manual") (syntax "zmk") (tags "#api #manual #reference #zettelstore") (title "Encoding of Sz Block Elements")) (rights read) (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'' [[__Attributes__|00001012931000#attribute]] Number [[__InlineElement__|00001012931600]] … '')''.\n:::\nA heading starts with a possibly empty list of attributes and a number specifying the heading level (1--5).\nThe 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'' [[__Attributes__|00001012931000#attribute]] __ListItem__ … '')''.\n\n__UnorderedList__ **=** ''(UNORDERED'' [[__Attributes__|00001012931000#attribute]] __ListItem__ … '')''.\n\n__QuotationList__ **=** ''(QUOTATION'' [[__Attributes__|00001012931000#attribute]] __ListItem__ … '')''.\n:::\nwhere\n:::syntax\n__ListItem__ **=** ''(ITEM'' [[__Attributes__|00001012931000#attribute]] __ItemElement__ … '')''.\n\n__ItemElement__ **=** __OrderedList__ **|** __UnorderedList__ **|** __QuotationList__ **|** __Paragraph__.\n:::\n\n=== ''DESCRIPTION''\n:::syntax\n__Description__ **=** ''(DESCRIPTION'' [[__Attributes__|00001012931000#attribute]] __DescriptionTerm__ __DescriptionDetail__ __DescriptionTerm__ __DescriptionDetail__ … '')''.\n:::\nA description is a sequence of one or more terms and details.\n\n:::syntax\n__DescriptionTerm__ **=** ''(TERM'' [[__Attributes__|00001012931000#attribute]] [[__InlineElement__|00001012931600]] … '')''.\n:::\nA description term is just an inline-structured value.\n\n:::syntax\n__DescriptionDetail__ **=** ''(DETAIL'' __DescriptionEntry__ … '')''.\n:::\nwhere\n:::syntax\n__DescriptionEntry__ **=** ''(ENTRY'' [[__Attributes__|00001012931000#attribute]] __Paragraph__ … '')''.\n:::\n\nDescription details are sequences of entries that contain only paragraphs.\n\nFrom this restriction it follows that, within a description, only inline elements are allowed for content.\nNested block elements are forbidden.\n\n=== ''TABLE''\n:::syntax\n__Table__ **=** ''(TABLE'' [[__Attributes__|00001012931000#attribute]] __TableHeader__ __TableRow__ … '')''.\n:::\nA table is a table header and a sequence of table rows.\n\n:::syntax\n__TableHeader__ **=** ''()'' **|** __TableRow__.\n:::\nA table header is either the empty list or a table row.\n\n:::syntax\n__TableRow__ **=** ''(ROW'' [[__Attributes__|00001012931000#attribute]] __TableCell__ … '')''.\n:::\nA table row contains optional attributes, plus a list of table cells.\n\n=== ''CELL''\n:::syntax\n__TableCell__ **=** ''(CELL'' [[__Attributes__|00001012931000#attribute]] [[__InlineElement__|00001012931600]] … '')''.\n:::\nA table cell contains some attributes and cell content, which is a sequence of inline elements.\n\nThe attribute ''align'' specifies the cell alignment.\nAn attribute value ''\"center\"'' specifies centered aligned cell content.\nThe attribute value ''\"left\"'' specifies left aligned cell content.\nThe attribute value ''\"right\"'' specifies right aligned cell content.\nIn all other cases, a default alignment is assumed.\n\n=== ''REGION-*''\nThe following lists specify different kinds of regions.\nA region treat a sequence of block elements to be belonging together in certain ways.\nThey 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 breaks 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'' [[__Attributes__|00001012931000#attribute]] String,,1,, String,,2,, [[__InlineElement__|00001012931600]] … '')''.\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]] [[__InlineElement__|00001012931600]] … '')''.\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."))