(this is a prototype, so, not ready to use yet)
It's XML minus the namespace stuff plus a macro system.
Two main reasons. Markdown and friends are not good for authoring large documents and XML/HTML is painful to write.
Suppose you are authoring a large document in HTML, and are writing a paragraph, such as this:
<p>
It was the best of times, it was the worst of times, it
was the age of wisdom, it was the age of foolishness, it was the epoch
of belief, it was the epoch of incredulity, it was the season of
light, it was the season of darkness, it was the spring of hope, it
was the winter of despair.
</p>
You'd like to add some styling to part of the first sentence. To do that, you might use a span with some CSS.
<p>
<span class="some-rule">It was the best of times</span>, ...
</p>
Manually typing that span just once is not too hard, but typing it over and over again would be awful! We can do better! What if there was a way to define a macro to make things easier? Then we could reduce:
<span class="some-rule">It was the best of times</span>
down to:
<some-rule>It was the best of times</some-rule>
Or shorten the macro name down to just sr
:
<sr>It was the best of times, it was the blurst of times</sr>
OK, so what would such a macro look like? In AuXML, it looks like this:
<defmacro name="sr">
<span class="some-rule"><contents/></span>
</defmacro>
That's the macro definition. To use it, invoke the macro with name
sr
by typing:
<sr> your text goes here </sr>
which will replace the <contents/>
tag found in the macro definition
and produce:
<span class="some-rule"> your text goes here </span>
There are a few more features, but that's the gist of it. The whole system is roughly 700 lines of python code, lxml does all the heavy lifting.