]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - doc/bugs/discount_stopped_rendering_markdown_links.mdwn
mdwn: Automatically detect which libdiscount flags to use
[git.ikiwiki.info.git] / doc / bugs / discount_stopped_rendering_markdown_links.mdwn
1 # What I did
3 Upgraded from 3.20180105 to 3.20180228 (from pkgsrc).
4 No change to installed Text::Markdown::Discount (0.11nb4 from pkgsrc, using upstream's bundled Discount library).
6 # What I expected to happen
8 Markdown-style links to continue being rendered as before.
10 # What actually happened
12 Markdown-style links stopped being links.
13 Instead, they render the part in square brackets as ordinary text.
15 # Proximate cause
17 In [f46e429](http://source.ikiwiki.branchable.com/?p=source.git;a=commitdiff;h=f46e429d96ead32943cb2670d7686df8c77de361), if I comment out the `MKD_GITHUBTAGS` if block, the problem goes away.
19 # Further causes and possible solutions
21 Some guesses:
23 - Sufficiently old versions of the Discount library may break when passed unrecognized flags, in which case ikiwiki might want to version-check before passing flags
24 - The version of the Discount library bundled with upstream Text::Markdown::Discount may be extremely old, in which case pkgsrc might want to make it depend instead on an external Discount package
26 > This appears to be because `MKD_GITHUBTAGS` and `MKD_LATEX` both have numeric values that
27 > were previously used for the internal flag `IS_LABEL`, which strips HTML (its value has
28 > changed a couple of times).
29 >
30 > Having thought about this a bit, I realise I can probe for the values of these flags by
31 > processing HTML that should have different results with the flag set or unset, which
32 > would be safer than just blindly using them.
33 >
34 > Orthogonally, pkgsrc should probably use an up-to-date version of Discount, and
35 > [we already know that Text::Markdown::Discount needs updating](https://rt.cpan.org/Public/Bug/Display.html?id=124188).
36 > --[[smcv]]
38 >> This should be [[fixed|done]] in current git. The mdwn module now
39 >> detects what your version of Discount supports by trying several
40 >> short HTML fragments that render differently under the different
41 >> flags. --[[smcv]]