aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-03-09 02:37:49 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-03-09 02:37:49 +0000
commitd5f9b1dbb4c1e57b8480afb79753bbd064cecab3 (patch)
tree09f7caaf66eab5ae9bf8e326f612561905fd42d0
parentf1191f029a24f2f3b0cdb067f28a4aac48c4bc54 (diff)
downloadpandoc-d5f9b1dbb4c1e57b8480afb79753bbd064cecab3.tar.gz
Change in ordered lists in Markdown reader:
+ Lists may begin with lowercase letters only, and only 'a' through 'n'. Otherwise first initials and page references (e.g., p. 400) are too easily parsed as lists. + Numbers beginning list items must end with '.' (not ')', which is now allowed only after letters). NOTE: This change may cause documents to be parsed differently. Users should take care in upgrading. git-svn-id: https://pandoc.googlecode.com/svn/trunk@561 788f1e2b-df1e-0410-8736-df70ead52e1b
-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