@@ -30,7 +30,6 @@ Conversion of mediawiki text to 'Pandoc' document.
33−_ correctly handle skipped level in list, e.g. # to ###
34_ tests for lists
33_ tests for lists
35_ support HTML lists
34_ support HTML lists
36_ support list style attributes and start values in ol lists, also
35_ support list style attributes and start values in ol lists, also
@@ -199,10 +198,27 @@ listStartChar :: MWParser Char
199listStartChar = oneOf "*#;:"
198listStartChar = oneOf "*#;:"
201anyListStart :: MWParser ()
200anyListStart :: MWParser ()
202−anyListStart = listStart '*' <|> listStart '#' <|> listStart ';'
201+anyListStart = skipMany1 (char '*')
202+ <|> skipMany1 (char '#')
203+ <|> (() <$ char ';')
204listItem :: Char -> MWParser Blocks
205listItem :: Char -> MWParser Blocks
205listItem c = try $ do
206listItem c = try $ do
207+ extras <- many (try $ char c <* lookAhead listStartChar)
211+ first <- manyTill anyChar newline
212+ rest <- many (try $ string extras *> manyTill anyChar newline)
213+ contents <- parseFromString (many1 $ listItem' c)
214+ (unlines (first : rest))
216+ '*' -> return $ B.bulletList contents
217+ '#' -> return $ B.orderedList contents
220+listItem' :: Char -> MWParser Blocks
221+listItem' c = try $ do
206 listStart c
222 listStart c
207 first <- manyTill anyChar newline
223 first <- manyTill anyChar newline
208 rest <- many (try $ char c *> lookAhead listStartChar *>
224 rest <- many (try $ char c *> lookAhead listStartChar *>