Android-FileBrowser-FilePicker
Android-FileBrowser-FilePicker copied to clipboard
Reference links don't work if the link label contains backticks
Reference Links with Formatting Test
An inline link can contain various Markdown
formatting.
A reference link works when you don't have any formatting.
A reference link with formatting also renders properly.
If that formatting contains code
backticks then it should, but the Python renderer doesn't handle it correctly.
Source:
# Reference Links with Formatting Test
An [_inline_ link **can** contain various `Markdown` formatting.](https://github.com/)
A reference link [works when you don't have any formatting][].
[works when you don't have any formatting]: https://example.com/
A [reference link _with_ formatting][] also renders properly.
[reference link _with_ formatting]: https://example.com/ref-link-with-formatting
If that [formatting contains `code` backticks][] then it should, but the Python renderer doesn't handle it correctly.
[formatting contains `code` backticks]: https://example.com/ref-link-with-code
Output of python -m markdown
with Markdown 2.6.2 module (verified with Python 2.7.12 and Python 3.5.2 both on Linux):
<h1>Reference Links with Formatting Test</h1>
<p>An <a href="https://github.com/"><em>inline</em> link <strong>can</strong> contain various <code>Markdown</code> formatting.</a></p>
<p>A reference link <a href="https://example.com/">works when you don't have any formatting</a>.</p>
<p>A <a href="https://example.com/ref-link-with-formatting">reference link <em>with</em> formatting</a> also renders properly?</p>
<p>If that [formatting contains <code>code</code> backticks][] then it doesn't?</p>[mduo13@Manatsu ~]$ cat md_reflink_test.md | python -m markdown
<h1>Reference Links with Formatting Test</h1>
<p>An <a href="https://github.com/"><em>inline</em> link <strong>can</strong> contain various <code>Markdown</code> formatting.</a></p>
<p>A reference link <a href="https://example.com/">works when you don't have any formatting</a>.</p>
<p>A <a href="https://example.com/ref-link-with-formatting">reference link <em>with</em> formatting</a> also renders properly.</p>
<p>If that [formatting contains <code>code</code> backticks][] then it should, but the Python renderer doesn't handle it correctly.</p>
As you can see, in the Python output, it retains the [brackets around link label][] in the output HTML.
Interestingly, the oldest implementations (the reference implementation and those which most closely follow it) all behave the same way. I'm comfortable being in that company. Personally, I never use code spans in my references (I number them). Regardless, this is a potentially surprising behavior and could reasonably be considered a bug.
However, the current implementation is highly dependent on the order in which regexs are run against the source text (as is the reference implementation). The only reason Markdown text inside a code span isn't parsed is because the regex to match the code span is run first. Therefore, the link no longer contains a code span (as Markdown formatted text) by the time the reference link code is run and the link label doesn't match a known reference key. The only way to fix this is to completely refactor the entirety of the inline processing code.
It just so happens that I have started some work on that for version 3.0. Until then, this will have to stay as-is, which I'm okay with for the reasons mentioned above.
Is this bug fixed in 3+ version?
I cann't render reference links in node.js documentation
Example: https://github.com/nodejs/node/blob/master/doc/api/fs.md#filehandleappendfiledata-options
@bndby if you read my previous comments closely you will see that we don't really consider this to be a bug as the current behavior matches the reference implementation. That said, we are not opposed to applying a fix if someone wants to take the time to developed one. However, I have no need for a fix and am not interested in spending the time to work on one. Therefore, I don't expect this to ever be fixed.