[Haskell-cafe] GSoC Project Proposal: Markdown support for Haddock

Richard A. O'Keefe ok at cs.otago.ac.nz
Fri Apr 5 04:24:31 CEST 2013


On 5/04/2013, at 2:00 PM, Johan Tibell wrote:

>> Would it be too much to ask that a notation be used which has
>> a formal syntax and a formal semantics?
> 
> We will document our superset, sure. That's what others did as well.
> The point is using Markdown as the shared base.

Nononono.
Sure, the others "documented" their supersets.
But they did *NOT* provide what I am asking for:
 - a FORMAL SYNTAX and
 - a FORMAL SEMANTICS.
I tried to use one of these systems, and found myself
unable to determine which combinations of features were
legal and what legal combinations of features *meant*.
I corresponded with some people who had built markdown
parsers, and the answer was the same each time: they had
reversed engineered some other parser (typically a Perl
one) and bashed on it until they were bug-compatible.

If I want to get a particular effect in LaTeX or even in
HTML+CSS, I can usually figure it out *without* having to
run any program.  If I want to get a particular effect in
Markdown, I flounder around and end up doing without.

I am sick of "documentation" that vaguely hints at things,
and I am especially sick of Markdown so-called documentation.

To say it one more time:  I was unable to use the official
Markdown documentation,
http://daringfireball.net/projects/markdown/syntax,
to guide the construction of a parser.

For example, <br> is a valid URL enclosed in <. . .>, so
is it a link, as the "Automatic Links" section would suggest,
or is it embedded HTML, as the "Inline HTML" section would
suggest?  Can you tell *from the documentation*?

For another example, is *foo**bar**ugh* supposed to map to
<em>foo<strong>bar</strong>ugh</em> or to
<em>foo</em><em>bar</em><em>ugh</em>?
Again, I'm not asking "what does this or that *program* do",
I'm asking "can you tell from the documentation what they
*ought* to do?"

If there is an unambiguous specification of Markdown somewhere
(specification; not program), I would be glad to see it.





More information about the Haskell-Cafe mailing list