Visual Mnemonics
/italic/ slashes lean, *bold* asterisks are heavy, _underline_ sits below, ~strikethrough~ runs through. Syntax that looks like its output.
Visual mnemonics, human-centered design — markup you can feel.
---
title: My Document
tags: [carve, markup]
---A leading --- fenced block holds document metadata. Add a format token to the opening fence for non-YAML metadata (---toml, ---json, or any label); a bare --- uses the configurable default format (yaml unless the host sets defaultFrontmatterFormat):
---toml
title = "My Document"
---Carve holds the content raw - the verbatim text plus the format label - and does not parse it; your application interprets the declared format. The block is leading-only and never rendered as body content.
/italic/ *bold* /*bold italic*/
_underline_ ~strikethrough~
=highlight= {^super^} {,sub,}# H1
## H2
### H3
#### H4[link text](https://url.com)
[Page Name][] (wiki-style)

^ Figure 1: Caption text- unordered item
1. ordered item
- [ ] task
- [x] done`inline code`
```language
code block
```Inline: $`e^{i\pi} + 1 = 0`
Display: $$`\int_0^1 x \, dx`> quoted text
^ Attribution
::: note
admonition content
:::|= Header |= Header | (|= for headers)
| Cell | Cell |
|= Row | Cell | (|= in a body row = row header)
^ Table caption
| ^ | spanned | (^ rowspan)
| Header | < | (< colspan)
+ continuation cell | (+ multiline)*[HTML]: HyperText Markup Language{#id .class key=value}@username #tagname
:youtube[VIDEO_ID]:name[content]{attrs} is the generic inline-extension syntax; a specific embed like :youtube[…] is produced by a registered extension (built-in where shipped, otherwise a small custom one). @mentions and #tags render as inert spans until you supply URL templates.
%% whole-line comment
text %% trailing comment
%%%
block comment
%%%Carve 0.1 is specified and shipping. Tier-1 core and Tier-2 standard extensions are normative and stable; Tier-3 app-level extensions ship but evolve (see Versioning). Conformance is pinned by 492 corpus examples with exact HTML output, and the three reference engines - carve-js (TypeScript), carve-php, and carve-rs - all run the same corpus with no open divergences. Pre-1.0, a minor release may still change the grammar.
Reference material covers the normative grammar and extensions contract, the security model, the technical rationale, parsing edge cases, native features, and the broader markup landscape. The Case Study records the original design research the language grew out of; it is history, not the normative spec.
Looking for a parser, editor plugin, or framework integration? See the Ecosystem. Want to write your own? Start with Build Your Own Implementation.
File extension: .crv
/italic/ syntax, TODO states|= table headers