Design
Both the affirmative case (what we chose) and the negative case (why we didn't just extend Markdown).
Part 3: Carve Design Principles
3.1 Core Principles
- Distinct syntax - Prefer different markers for different constructs
- Visual mnemonics - Syntax resembles output
- Progressive disclosure - Common constructs come first; advanced ones remain available
- Natural language order - Read left-to-right logically
- Graceful degradation - Plain text remains readable
- Keyboard-friendly - Common operations use common keys
- Visible syntax - Avoid significant trailing spaces
3.2 Anti-Patterns to Avoid
- Double characters for "stronger" (
**bold**) - not intuitive - Asymmetric syntax (
[text](url)vs) - Significant trailing whitespace
- Context-dependent parsing
- Same delimiter, count-dependent meaning (
*vs**for emphasis vs strong)
Part 11: Why Not Just Fix Markdown?
11.1 The Backward Compatibility Trap
Markdown's installed base makes syntax changes expensive. A change can alter existing documents, and implementations may adopt it at different times.
11.2 Relationship to Djot
Djot gives Carve a parsing model and attributes. Carve changes some surface choices, including emphasis, subscript, and superscript delimiters, to meet different readability goals. The formal grammar defines the current language.