Closed mishoo closed 11 years ago
This is what the MD JsonML to HTML converter will output as well.
Link references are commonly put at the end of a document or section, so the parser needs to create ref-links as it goes along, and when converting at the end if no reference is found it is output as a literal [bar]:
foo [bar]
[bar]: http://www.google.com
Compare outputs here: http://babelmark.bobtfish.net/?markdown=foo+[bar]%0D%0A%0D%0A[bar]%3A+http%3A%2F%2Fwww.google.com
This comes down to the wonderful fact that markdown doesn't have a formal specification.
I agree it should be linked if there's a [bar]: link-definition
somewhere, but it should be left alone otherwise. Most converters in the page you pointed out seem to agree on this.
Perhaps the smarter move would be to scan for link definitions first, and add link_ref
only for defined links. I suppose it's not easily doable though.. :-(
The HTML output for foo [bar] baz
is <p>foo [bar] baz</p>
.
We use two intermediary formats to make customisation and extension easier: Markdown -> JsonML (Markdown) -> JsonML (HTML) -> HTML. The link_ref
is converted into plain text on the second step, when it becomes JsonML (HTML). Doing it in the first step would be a pain, and could hurt extensibility around link definitions.
The HTML output for foo [bar] baz is
foo [bar] baz
.
Yep, got that, but it's the tree form what I care about here. I'm using markdown-js to parse some API documentation and the JsonML format is pretty good for working with it.
Well, nevermind, I'll just fix up the tree on my own in this case...
This text:
foo [bar] baz
parses as:The original markdown outputs
<p>foo [bar] baz</p>
which is more like what I'd expect—it's not really a link. I can't find the single[foo]
as valid syntax in the Markdown spec, so I assume this is a bug...