You had me at removing doubled character delimiters from emphasis
-
I really like the changes to simplify emphasis. I’m not entirely sure I like the choice of the
~
delimiter but I think the key thing you’ve identified is that intraword emphasis should have some kind of special marking so that we ensure that it is intended. I wonder if we could make this idea more a more general concept, a kind of “anti-escape” if you will.
Delimiter characters that depend on context (like emphasis) could either be “active”, “passive”, or “inactive”. “Active” ones would always render (the effect of yourfan~_tas_~tic
), “passive” ones would render if context allows (i.e. the left/right flanking rules are satisfied), and “inactive” ones would just be literal characters. By default all delimiter characters are passive, unless marked as active, or inactive (escaped).
The immediate problem I see with this is that context also defines whether a delimiter is an opener or a closer (since both use the same character), so this “active” marker would have to allow that to be specified (e.g. as you’ve done by placing the~
on the left or right of the delimiter). -
I really like the recommendations for reference links.
-
Indented code blocks aren’t very useful, and they do indeed complicate things. Getting rid of them is a good solution.
-
I like the moving of HTML to a proper block and inline syntax.
`
's are markdown’s way of allowing odd text to be passed through untouched – allowing custom treatment of the untouched text (to HTML, or other) is a very natural extension. -
I like the idea here, I think that a class should have a
.
prefix personally for uniformity with css, and there are probably some details to work out with 6b and 6c.Perhaps even some there would be a way of reconciling this
{...}
syntax with the{=...}
proposed in 5. . I know these will be distinguishable cases as defined, but is there perhaps more that can be done? e.g. suppose that{=...}
was allowed before any block and was a general “argument passing syntax”. We could perhaps use{=(delimiter: roman, start: 6)}
before a list to dictate the list counter for example. Not that we have to do it exactly like this, but perhaps something to think about with regard to unifying custom data inputs for behaviours with blocks/inlines. This so that we are not just limited to doing this kind of thing in code blocks and code spans.