aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README23
-rw-r--r--src/Text/Pandoc/Readers/Markdown.hs18
2 files changed, 23 insertions, 18 deletions
diff --git a/README b/README
index 4faa7502e..4ca12a6de 100644
--- a/README
+++ b/README
@@ -394,8 +394,8 @@ behavior is consistent with the official markdown syntax
description, even though it is different from that of `Markdown.pl`.)
Unlike standard markdown, Pandoc allows ordered list items to be
-marked with single letters, instead of numbers. So, for example,
-this source yields a nested ordered list:
+marked with single lowercase letters (from 'a' to 'n'), instead of
+numbers. So, for example, this source yields a nested ordered list:
1. First
2. Second
@@ -403,24 +403,23 @@ this source yields a nested ordered list:
b. Fie
3. Third
-Pandoc also extends standard markdown in allowing list item markers
-to be terminated by ')':
+The letters may be followed by either '.' or ')':
- 1) First
- 2) Second
- A) Fee
- B) Fie
- 3) Third
+ 1. First
+ 2. Second
+ a) Fee
+ b) Fie
+ 3. Third
Note that Pandoc pays no attention to the *type* of ordered list
item marker used. Thus, the following is treated just the same as
the example above:
- A) First
+ a) First
1. Second
2. Fee
- B) Fie
- C) Third
+ b) Fie
+ c. Third
Reference links
---------------
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs
index 067b68e6a..df41e1dd6 100644
--- a/src/Text/Pandoc/Readers/Markdown.hs
+++ b/src/Text/Pandoc/Readers/Markdown.hs
@@ -77,7 +77,6 @@ autoLinkEnd = '>'
mathStart = '$'
mathEnd = '$'
bulletListMarkers = "*+-"
-orderedListDelimiters = ".)"
escapeChar = '\\'
hruleChars = "*-_"
quoteChars = "'\""
@@ -360,14 +359,21 @@ bulletListStart = try (do
spaceChar
skipSpaces)
-orderedListStart = try (do
+standardOrderedListStart = do
+ many1 digit
+ char '.'
+
+extendedOrderedListStart = do
+ failIfStrict
+ oneOf ['a'..'n']
+ oneOf ".)"
+
+orderedListStart = try $ do
option ' ' newline -- if preceded by a Plain block in a list context
nonindentSpaces
- many1 digit <|> (do{failIfStrict; count 1 letter})
- delim <- oneOf orderedListDelimiters
- if delim /= '.' then failIfStrict else return ()
+ standardOrderedListStart <|> extendedOrderedListStart
oneOf spaceChars
- skipSpaces)
+ skipSpaces
-- parse a line of a list item (start = parser for beginning of list item)
listLine start = try (do