v1.0.0

ClearNotation

Technical documentation, clearly.

A markup language with a formal grammar, strict parsing, and one way to write each thing.

Clean by design, not by accident

Every construct has one form. The parser either succeeds or fails with a clear error.

ClearNotation .cln
# document metadata is typed and validated
::meta{
title = "API Reference"
authors = ["Alice", "Bob"]
}

# headings always start with #
# Authentication

All requests require a +{Bearer token}.
See [the guide -> /docs/auth] for setup.

# code blocks require a language tag
```http
Authorization: Bearer <token>
```

::callout[kind="warning", title="Rate limits"]{
Requests are limited to 1000 per hour.
}
Markdown .md
# no document metadata standard
# (YAML frontmatter varies by tool)
---
title: API Reference
authors: [Alice, Bob]
---

# headings are also used for structure
## Authentication

All requests require a **Bearer token**.
See [the guide](/docs/auth) for setup.

# language tag is optional (often omitted)
```
Authorization: Bearer <token>
```

# callouts: tool-specific, no standard
> **Warning:** Rate limits
> Requests are limited to 1000 per hour.

What formal specification gets you

Conformance
Every edge case is specified
CLN
100%
MD
~51%

70 test fixtures cover every valid, parse-invalid, and validate-invalid case. CommonMark specifies roughly half its examples; the rest vary by parser.

Syntax forms
No ambiguity, no style debates
1
way to write it
in CLN
3-5
ways to write it
in Markdown

Bold is +{text}. Links are [label -> url]. One form per concept means every doc reads the same way.

Implementations
Same output, every tool
CLN
Python
JS
tree-sitter
VS Code
Markdown
GFM
MDX
kramdown
CommonMk

Four implementations verified against one conformance suite. Switch tools and your docs still render the same way.

What you get

A spec you can test against, not a collection of conventions.

Formal grammar

The spec is a grammar. Every valid document maps to a typed AST. No implementation guesswork.

Strict parsing

Unknown directives, bad references, and missing includes all produce errors, not silent garbage.

Typed extensions

Custom directives go in clearnotation.toml. Documents stay clean.

One way to write it

Bold is +{text}. Links are [label -> url]. No shorthand variants.

Multiple implementations

Python CLI, JavaScript renderer, tree-sitter grammar, and VS Code extension, all from one spec.

70 conformance fixtures

The test suite covers valid documents, parse errors, and validation errors. New implementations can check compliance on their own.

Three ways to use ClearNotation

All three share the same spec.

VS Code Extension
Syntax highlighting, validation, and preview
ext install ClearNotation.clearnotation
Python CLI
Build, check, format, and watch .cln files
pip install clearnotation
JavaScript
Normalize and render .cln in the browser or Node
npm install clearnotation-js