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, safe => 1,
rebuild => 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 () { sub checkconfig () {
$config{mdwn_footnotes} = 1 unless defined $config{mdwn_footnotes}; $config{mdwn_footnotes} = 1 unless defined $config{mdwn_footnotes};
$config{mdwn_alpha_lists} = 0 unless defined $config{mdwn_alpha_lists};
} }
my $markdown_sub; my $markdown_sub;
@ -101,6 +110,10 @@ sub htmlize (@) {
$flags |= Text::Markdown::Discount::MKD_EXTRA_FOOTNOTE(); $flags |= Text::Markdown::Discount::MKD_EXTRA_FOOTNOTE();
} }
unless ($config{mdwn_alpha_lists}) {
$flags |= Text::Markdown::Discount::MKD_NOALPHALIST();
}
# Workaround for discount's eliding # Workaround for discount's eliding
# of <style> blocks. # of <style> blocks.
# https://rt.cpan.org/Ticket/Display.html?id=74016 # 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 * mdwn: Enable footnotes by default when using the default Discount
implementation. A new mdwn_footnotes option can be used to disable implementation. A new mdwn_footnotes option can be used to disable
footnotes in MultiMarkdown and Discount. 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 -- 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 This is the standard markup language used by ikiwiki, although some others
are also available in other plugins. are also available in other plugins.
## Implementations
There are several implementations of markdown support that can be used by There are several implementations of markdown support that can be used by
this plugin. In order of preference: 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 features are disabled when it's used with ikiwiki. Also note that if the
`multimarkdown` option is enabled, it takes priority over Discount, which `multimarkdown` option is enabled, it takes priority over Discount, which
might cause formatting that is understood by Discount to be ignored. 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".