XTXT

Limitations

Being direct about this is the point. A format that claims every use case is trusted with none of them.

Nothing nests

This is the big one.

note

Title
No nested lists Indenting an item deeper than the first does not create a sublist. XTXT reports a warning rather than flattening silently, but the structure is still not expressible.

note

Title
No blocks inside blocks An admonition containing a code sample cannot be written. The inner block's @endname closes the outer one.

The examples on the directives and code pages of this very site use @raw as a workaround, because a @code block demonstrating @code closes itself early. The format cannot document itself without that trick, which is the clearest evidence of the cost.

Why it is this way. Every construct is terminated by a line and nothing nests, so a parser needs a single pass, no backtracking, and no grammar generator. That is what makes the specification implementable in an afternoon and seven implementations agree.

What to use instead. For books and long-form documentation where nesting is unavoidable, AsciiDoc is the better tool today.

Records have no schema

A record's field names are preserved and reported, but nothing declares that Status is an enum, that Due is a date, or that Owner refers to a person.

Two authors can produce two vocabularies that do not line up, and a program reading both has to reconcile them. This is the most requested missing feature.

Charts

capped at what validates for colour-vision-deficient separation.

gap. Real gaps would need every SVG builder to understand absent points.

chart=; changing it in the browser would need a third chart renderer beside the Go and JavaScript ones.

Not in the format at all

XTXT does not specify compression, encryption, embedded revision history, or a binary container. Each would trade away the property the format exists for — that the bytes on disk are the document, readable in any editor.

These belong in a layer above: a file inside an encrypted volume, a signature alongside it, history in the version control system that already does it well.

Ecosystem gaps

MissingImpact
Tree-sitter grammarNo Neovim, Helix, Zed or GitHub highlighting
Language serverNo completion, no go-to-definition on includes and footnotes
FormatterNo canonical form, so style is a matter of opinion
GitHub rendering.xtxt shows as plain text in a repository
Chunking specificationTwo retrieval pipelines can still disagree

Deliberate non-goals

Not doingWhy
A visual editorThe bytes on disk are the document; a WYSIWYG layer contradicts the pitch
A package managerThere are no packages and no dependency problem to solve
Inference in the parserThe value is determinism; a parser that calls a model forfeits it