Skip to content
[menu]
Cutdown Specification v0.10.0
outline
index
Cutdown Markup Language Specification
Abstract
Table of Contents
1
Conventions
1.1
Streaming terms
1.2
Identifier Character Set
1.3
Segment
1.4
Block Type
1.5
Inline Type
1.6
Block Scope
2
Comments
2.1
Single # is literal
2.2
Double octothorpe ## — Line Comment (Reflection)
Trailing inline ## (on a structural line)
Standalone ## comment line
2.3
Triple octothorpe ### — CommentBlock (block comment)
2.4
Page assembly
2.5
Render policy
2.6
Interaction with attributes
3
Document Model
3.1
Document
3.2
Page
4
Block Segments
4.1
Paragraph
4.2
Section (Heading)
4.3
Meta (Front Matter)
4.4
CodeBlock
4.5
MathBlock
4.6
QuoteBlock
4.7
List
4.7.1
ListItem
4.7.2
TaskItem
4.8
Table
Header rows
Column alignment
Table shape
Row content
Empty tables
Reflection
Caption and escaping
4.9
ImageBlock
4.10
PageBreaker
4.11
FileRef
4.12
FileRefGroup
4.13
NamedBlock
4.14
RefDefinition
4.15
SpoilerBlock
4.16
CommentBlock
5
Inline Segments
5.1
Text
5.2
Emphasis
5.3
Strong
5.4
Highlight
5.5
Link
Link types and meaning
5.6
CodeInline
5.7
MathInline
5.8
QuoteInline
5.9
ImageInline
5.10
Mark
5.11
Variable
5.12
Spoiler
5.13
LineBreak
Line Comment (##) — not an inline segment
6
Segment Attribution (Universal Attributes and Caption)
6.1
Universal Attributes
6.1.1
Syntax
6.1.2
Placement
Block Opening Lines — Last-Attr Rule
Per-segment placement rules
Scope-chain rule (Rule B)
Trailing attr lines and loose-list detection
6.1.3
Orphan Attributes
6.1.4
Attribute Inside Link Text
6.2
Caption
7
Input Interpretation
7.1
Streaming input snapshots
8
Escaping
8.1
Special Characters
8.2
Block-Opener Escapes
8.3
Opaque-Block Closer Escapes
9
Parsing Algorithm
9.1
Phase 1 — Input Interpretation
9.2
Phase 2 — Block Identification
9.3
Phase 3 — Block Classification
9.4
Phase 4 — Inline Parsing
9.4.1
Degradation classes
9.5
Derived Structure
9.5.1
Sectionization fold
9.5.2
Pagination fold
9.6
PageBreaker
9.7
Incremental availability
10
Block Structure and Block Boundaries
10.1
Block Boundaries
10.2
Leading and Trailing Whitespace
10.3
Block Classification
10.4
Syntax Primitives
10.4.1
Doubled-symbol inline delimiter
10.4.2
Tripled-symbol block delimiter
10.4.3
Delimiter placement
10.4.4
Symbol repetition
10.4.5
Delimiter collisions
10.5
List Indentation Model
10.6
Container-Edge Blank Lines
11
Precedence Rules
12
Whitespace Rules
12.1
Whitespaces in Block Segments
12.2
Whitespaces in Inline Segments
13
Special Character Reference
14
AST Node (Segment) Reference
14.1
Root Segments
14.2
Block Segments
14.3
Inline Segments
14.4
Special Nodes
14.5
Synthetic Segments
14.6
Location Type
14.7
Reflection Type
14.8
Attributes Type
15
Name and Compliance
16
Streaming Conformance Profile
16.1
Scope
16.2
Input boundary
16.3
Snapshot and EOF semantics
16.4
Consumers and end of block
16.5
Exclusions
16.6
Evidence
17
Canonical Form
17.1
Registry
17.2
Notes on individual rows
17.3
What is not in the registry
Readme
Specification
Syntax summary
Policies
Conformance corpus
Contributing
License
Changelog
Readme
\
Conformance corpus
\
empty-document
empty-document
Empty document produces exactly one Ghost Page (null meta, empty children)
§3
Input
Pages
- {}