aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <smcv@debian.org>2017-05-16 07:58:12 +0100
committerSimon McVittie <smcv@debian.org>2017-05-16 08:09:15 +0100
commitc72dc5ddb79391ea9f518b4b76b9d1bb0f318649 (patch)
treea279f2e56b45e7d336b03e1ec3dffe89e5d5baae
parent94316fca549e76cedefc80e542d52460ba2dd5ce (diff)
downloadikiwiki-c72dc5ddb79391ea9f518b4b76b9d1bb0f318649.tar
ikiwiki-c72dc5ddb79391ea9f518b4b76b9d1bb0f318649.tar.gz
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.
-rw-r--r--IkiWiki/Plugin/mdwn.pm13
-rw-r--r--debian/changelog4
-rw-r--r--doc/plugins/mdwn.mdwn20
3 files changed, 37 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/mdwn.pm b/IkiWiki/Plugin/mdwn.pm
index e142fec46..9f06c03f2 100644
--- a/IkiWiki/Plugin/mdwn.pm
+++ b/IkiWiki/Plugin/mdwn.pm
@@ -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
diff --git a/debian/changelog b/debian/changelog
index e2a861c3c..455e5981f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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
diff --git a/doc/plugins/mdwn.mdwn b/doc/plugins/mdwn.mdwn
index 6b20b7bb0..31123715d 100644
--- a/doc/plugins/mdwn.mdwn
+++ b/doc/plugins/mdwn.mdwn
@@ -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".