From d5f9b1dbb4c1e57b8480afb79753bbd064cecab3 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Fri, 9 Mar 2007 02:37:49 +0000 Subject: 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 --- src/Text/Pandoc/Readers/Markdown.hs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/Text') 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 -- cgit v1.2.3