mdwn: Restore historical behaviour

The Discount package in Debian historically enabled fenced code blocks,
PHP Markdown Extra-style definition lists, and an expanded character
set for tag names. Since Discount 2.2.0 those are runtime settings, so
enable them. Unfortunately Text::Markdown::Discount doesn't yet expose
the necessary constants:
https://rt.cpan.org/Public/Bug/Display.html?id=124188

The IDANCHOR option was historically also enabled in Debian, but is not
enabled here because ikiwiki does not enable the TOC option, and
IDANCHOR does nothing without TOC.

Closes: #888055
master
Simon McVittie 2018-01-23 09:39:05 +00:00
parent 400f37967c
commit f46e429d96
2 changed files with 28 additions and 0 deletions

View File

@ -1,6 +1,9 @@
ikiwiki (3.20180106) UNRELEASED; urgency=medium ikiwiki (3.20180106) UNRELEASED; urgency=medium
* core: Don't send relative redirect URLs when behind a reverse proxy * core: Don't send relative redirect URLs when behind a reverse proxy
* mdwn: Enable fenced code blocks, PHP Markdown Extra-style definition
lists and GitHub-style extensions to HTML tag syntax when used with
Discount >= 2.2.0 (Closes: #888055)
-- Simon McVittie <smcv@debian.org> Mon, 08 Jan 2018 10:51:10 +0000 -- Simon McVittie <smcv@debian.org> Mon, 08 Jan 2018 10:51:10 +0000

View File

@ -125,6 +125,31 @@ sub htmlize (@) {
$flags |= 0x00400000; $flags |= 0x00400000;
} }
# Enable fenced code blocks in libmarkdown >= 2.2.0
# https://bugs.debian.org/888055
if (Text::Markdown::Discount->can("MKD_FENCEDCODE")) {
$flags |= Text::Markdown::Discount::MKD_FENCEDCODE();
}
else {
$flags |= 0x02000000;
}
# PHP Markdown Extra-style term\n: definition -> <dl>
if (Text::Markdown::Discount->can("MKD_DLEXTRA")) {
$flags |= Text::Markdown::Discount::MKD_DLEXTRA();
}
else {
$flags |= 0x01000000;
}
# Allow dashes and underscores in tag names
if (Text::Markdown::Discount->can("MKD_GITHUBTAGS")) {
$flags |= Text::Markdown::Discount::MKD_GITHUBTAGS();
}
else {
$flags |= 0x08000000;
}
return Text::Markdown::Discount::markdown($t, $flags); return Text::Markdown::Discount::markdown($t, $flags);
} }
} }