Avocado is a new lightweight hypertext markup syntax in the same vein
as Markdown, Textile, and similar existing languages.
Why a new syntax? Avocado has the following goals, which all existing
markup languages fail to meet in some way.
- Formally, rigorously defined:
There must be one, and only one, possible valid interpretation of
a given Avocado document as HTML, which all implementations must
produce in order to be conforming.
- A complete recoding of HTML:
Any HTML node tree can be expressed using Avocado’s own syntax:
though, for convenience, you can drop down to use plain HTML for
a block, you should never need to: all HTML documents can be
losslessly translated to Avocado syntax. (Avocado syntax and HTML
syntax is disjoint: you can’t just directly include HTML in a
page and have it included verbatim; instead, there’s a special
directive to include raw markup.)
- For whole documents as well as snippets:
It should be possible to emit an entire HTML document, not just a
blog-post–style snippet, including doctypes and
html tags etc., without an external program to stuff a snippet into a
template.
Progress
Avocado is not yet fully designed, and there is no implementation
yet. You can keep track of the syntax’s evolution in the development and
design notes below: