((p "Every markup for blocks-structured elements (" (@L (@H "“") "blocks" (@H "”")) ") begins at the very first position of a line.") (p "There are five kinds of blocks: lists, one-line blocks, line-range blocks, tables, and paragraphs.") (h2 (@ (id . "lists")) "Lists") (p "In Zettelmarkup, lists themselves are not specified, but list items." " " "A sequence of list items is considered as a list.") (p (a (@ (href . "00001007030100")) "Description lists") " contain two different item types: the term to be described and the description itself." " " "These cannot be combined with other lists.") (p "Ordered lists, unordered lists, and quotation lists can be combined into " (a (@ (href . "00001007030200")) "nested lists") ".") (h2 (@ (id . "one-line-blocks")) "One-line blocks") (ul (li (a (@ (href . "00001007030300")) "Headings") " allow to structure the content of a zettel.") (li "The " (a (@ (href . "00001007030400")) "horizontal rule") " signals a thematic break") (li "A " (a (@ (href . "00001007031100")) "transclusion") " embeds the content of one zettel into another.")) (h2 (@ (id . "line-range-blocks")) "Line-range blocks") (p "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.") (ul (li (a (@ (href . "00001007030500")) "Verbatim blocks") " do not interpret their content,") (li (a (@ (href . "00001007030600")) "Quotation blocks") " specify a block-length quotations,") (li (a (@ (href . "00001007030700")) "Verse blocks") " allow to enter poetry, lyrics and similar text, where line endings are important,") (li (a (@ (href . "00001007030800")) "Region blocks") " just mark regions, e.g. for common formatting,") (li (a (@ (href . "00001007030900")) "Comment blocks") " allow to enter text that will be ignored when rendered.") (li (a (@ (href . "00001007031300")) "Evaluation blocks") " specify some content to be evaluated by either Zettelstore or external software.") (li (a (@ (href . "00001007031400")) "Math-mode blocks") " can be used to enter mathematical formulas / equations.") (li (a (@ (href . "00001007031200")) "Inline-Zettel blocks") " provide a mechanism to specify zettel content with a new syntax without creating a new zettel.")) (h2 (@ (id . "tables")) "Tables") (p "Similar to lists are tables not specified explicitly." " " "A sequence of table rows is considered a " (a (@ (href . "00001007031000")) "table") "." " " "A table row itself is a sequence of table cells.") (h2 (@ (id . "paragraphs")) "Paragraphs") (p "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:") (pre (code (@ (class . "language-zmk")) "= Heading\nSome text follows.")) (p "will be rendered in HTML as") (div (@ (class . "example")) (p "= Heading" " " "Some text follows.")) (p "This is because headings need at least three equal sign character.") (p "A paragraph is essentially a sequence of " (a (@ (href . "00001007040000")) "inline-structured elements") "." " " "Inline-structured elements can span more than one line." " " "Paragraphs are separated by empty lines.") (p "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.") (p "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."))