aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <fiddlosopher@gmail.com>2014-04-01 10:36:23 -0700
committerJohn MacFarlane <fiddlosopher@gmail.com>2014-04-01 10:36:23 -0700
commit4ee92dce0ce624db2d02c60ae2856a70cfeb6c42 (patch)
treefe48a278c4768f02c8264ee3d90fffc7d1904713
parent976f4f2d8fd8b5b984da52dc63d665038c4d023f (diff)
downloadpandoc-4ee92dce0ce624db2d02c60ae2856a70cfeb6c42.tar.gz
MediaWiki reader: Fixed bug in certain nested lists.
The bug: If a level 2 list was followed by a level 1 list, the first item of the level 1 list would be lost. Closes #1213.
-rw-r--r--src/Text/Pandoc/Readers/MediaWiki.hs3
-rw-r--r--tests/mediawiki-reader.native4
-rw-r--r--tests/mediawiki-reader.wiki3
3 files changed, 9 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/MediaWiki.hs b/src/Text/Pandoc/Readers/MediaWiki.hs
index f70b44aad..9bbabd44b 100644
--- a/src/Text/Pandoc/Readers/MediaWiki.hs
+++ b/src/Text/Pandoc/Readers/MediaWiki.hs
@@ -438,7 +438,8 @@ listItem c = try $ do
skipMany spaceChar
first <- concat <$> manyTill listChunk newline
rest <- many
- (try $ string extras *> (concat <$> manyTill listChunk newline))
+ (try $ string extras *> lookAhead listStartChar *>
+ (concat <$> manyTill listChunk newline))
contents <- parseFromString (many1 $ listItem' c)
(unlines (first : rest))
case c of
diff --git a/tests/mediawiki-reader.native b/tests/mediawiki-reader.native
index 87e4043f7..2e97e9484 100644
--- a/tests/mediawiki-reader.native
+++ b/tests/mediawiki-reader.native
@@ -102,6 +102,10 @@ Pandoc (Meta {unMeta = fromList []})
[[BulletList
[[Plain [Str "But",Space,Str "jumping",Space,Str "levels",Space,Str "creates",Space,Str "empty",Space,Str "space."]]]]]]]
,Para [Str "Any",Space,Str "other",Space,Str "start",Space,Str "ends",Space,Str "the",Space,Str "list."]
+,BulletList
+ [[BulletList
+ [[Plain [Str "two"]]]]
+ ,[Plain [Str "one"]]]
,OrderedList (1,DefaultStyle,DefaultDelim)
[[Plain [Str "Start",Space,Str "each",Space,Str "line"]]
,[Plain [Str "with",Space,Str "a",Space,Str "number",Space,Str "sign",Space,Str "(#)."]
diff --git a/tests/mediawiki-reader.wiki b/tests/mediawiki-reader.wiki
index 641f98eb9..6a6bc226d 100644
--- a/tests/mediawiki-reader.wiki
+++ b/tests/mediawiki-reader.wiki
@@ -185,6 +185,9 @@ http://johnmacfarlane.net/pandoc/
*** But jumping levels creates empty space.
Any other start ends the list.
+** two
+* one
+
# Start each line
# with a number sign (#).
## More number signs gives deeper