mdwn: Don't enable alphabetically labelled ordered lists by default

This avoids misinterpreting initials ("C. S. Lewis was an author"),
the abbreviation for Monsieur ("M. Descartes was a philosopher") and
German page numbering ("S. 42") as ordered lists if they happen to
begin a line.

This only affects the default Discount implementation: Text::Markdown
and Text::MultiMarkdown do not have this feature anyway. A new
mdwn_alpha_list option can be used to restore the old interpretation.
master
Simon McVittie 2017-05-16 07:58:12 +01:00
parent 94316fca54
commit c72dc5ddb7
3 changed files with 37 additions and 0 deletions

View File

@ -41,10 +41,19 @@ sub getsetup () {
safe => 1,
rebuild => 1,
},
mdwn_alpha_lists => {
type => "boolean",
example => 0,
description => "interpret line like 'A. First item' as ordered list when using Discount?",
advanced => 1,
safe => 1,
rebuild => 1,
},
}
sub checkconfig () {
$config{mdwn_footnotes} = 1 unless defined $config{mdwn_footnotes};
$config{mdwn_alpha_lists} = 0 unless defined $config{mdwn_alpha_lists};
}
my $markdown_sub;
@ -101,6 +110,10 @@ sub htmlize (@) {
$flags |= Text::Markdown::Discount::MKD_EXTRA_FOOTNOTE();
}
unless ($config{mdwn_alpha_lists}) {
$flags |= Text::Markdown::Discount::MKD_NOALPHALIST();
}
# Workaround for discount's eliding
# of <style> blocks.
# https://rt.cpan.org/Ticket/Display.html?id=74016

4
debian/changelog vendored
View File

@ -11,6 +11,10 @@ ikiwiki (3.20170112) UNRELEASED; urgency=medium
* mdwn: Enable footnotes by default when using the default Discount
implementation. A new mdwn_footnotes option can be used to disable
footnotes in MultiMarkdown and Discount.
* mdwn: Don't enable alphabetically labelled ordered lists by
default when using the default Discount implementation. A new
mdwn_alpha_list option can be used to restore the old
interpretation.
-- Simon McVittie <smcv@debian.org> Sun, 14 May 2017 15:34:52 +0100

View File

@ -7,6 +7,8 @@ It uses the [[ikiwiki/markdown]] minimal markup language.
This is the standard markup language used by ikiwiki, although some others
are also available in other plugins.
## Implementations
There are several implementations of markdown support that can be used by
this plugin. In order of preference:
@ -27,3 +29,21 @@ in the setup file. Note that multimarkdown's metadata and wikilinks
features are disabled when it's used with ikiwiki. Also note that if the
`multimarkdown` option is enabled, it takes priority over Discount, which
might cause formatting that is understood by Discount to be ignored.
## Advanced options
* `nodiscount`: If set to 1, Text::Markdown::Discount will not be used
even if it is available. The default is to use Discount if available,
and this is recommended.
* `multimarkdown`: If set to 1, Text::MultiMarkdown will be used in
preference to Text::Markdown::Discount. The default is to not use
MultiMarkdown, and this is recommended.
* `mdwn_footnotes`: If set to 1, implementations that support it will
recognise the PHP Markdown Extra syntax for footnotes. The default
is 1.
* `mdwn_alpha_lists`: If set to 1, Text::Markdown::Discount will
accept letters as well as numbers in ordered list markers. The
default is 0, to avoid unintended parsing of lines that happen
to begin with a letter and a dot, such as "C. S. Lewis was an
author" or "M. Descartes was a philosopher".