diff options
author | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2008-11-06 16:49:45 +0000 |
---|---|---|
committer | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2008-11-06 16:49:45 +0000 |
commit | 22549e19c6017f6b34692c3cc0eb994e4790709b (patch) | |
tree | 73d6fd44882ab6474eb79ed2dcc45872c073c176 | |
parent | f0e7d255928533b24a29d8df24bc00ef25bbd18e (diff) | |
download | pandoc-22549e19c6017f6b34692c3cc0eb994e4790709b.tar.gz |
Fixed parsing of RST comment blocks.
Modified 'unknown directive' in RST reader.
Added RST reader tests for comment blocks.
Resolves Issue #86 and Debian Bug#500662.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1484 788f1e2b-df1e-0410-8736-df70ead52e1b
-rw-r--r-- | Text/Pandoc/Readers/RST.hs | 9 | ||||
-rw-r--r-- | tests/rst-reader.native | 6 | ||||
-rw-r--r-- | tests/rst-reader.rst | 26 |
3 files changed, 36 insertions, 5 deletions
diff --git a/Text/Pandoc/Readers/RST.hs b/Text/Pandoc/Readers/RST.hs index 5533d309f..50075ae65 100644 --- a/Text/Pandoc/Readers/RST.hs +++ b/Text/Pandoc/Readers/RST.hs @@ -367,6 +367,8 @@ list = choice [ bulletList, orderedList, definitionList ] <?> "list" definitionListItem :: GenParser Char ParserState ([Inline], [Block]) definitionListItem = try $ do + -- avoid capturing a directive or comment + notFollowedBy (try $ char '.' >> char '.') term <- many1Till inline endline raw <- indentedBlock -- parse the extracted block, which may contain various block elements: @@ -464,11 +466,10 @@ bulletList = many1 (listItem bulletListStart) >>= unknownDirective :: GenParser Char st Block unknownDirective = try $ do - string ".. " + string ".." + notFollowedBy (noneOf " \t\n") manyTill anyChar newline - many (string " :" >> many1 (noneOf "\n:") >> char ':' >> - many1 (noneOf "\n") >> newline) - optional blanklines + many $ blanklines <|> (oneOf " \t" >> manyTill anyChar newline) return Null -- diff --git a/tests/rst-reader.native b/tests/rst-reader.native index 453581167..e0cedd59c 100644 --- a/tests/rst-reader.native +++ b/tests/rst-reader.native @@ -230,5 +230,9 @@ Pandoc (Meta [Str "Pandoc",Space,Str "Test",Space,Str "Suite",Str ":",Space,Str , Para [Str "From",Space,Str "\"Voyage",Space,Str "dans",Space,Str "la",Space,Str "Lune\"",Space,Str "by",Space,Str "Georges",Space,Str "Melies",Space,Str "(1902)",Str ":"] , Plain [Image [Str "image"] ("lalune.jpg","")] , Plain [Image [Str "Voyage dans la Lune"] ("lalune.jpg","Voyage dans la Lune")] -, Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."] ] +, Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "movie",Space,Image [Str "movie"] ("movie.jpg",""),Space,Str "icon."] +, Header 1 [Str "Comments"] +, Para [Str "First",Space,Str "paragraph"] +, Para [Str "Another",Space,Str "paragraph"] +, Para [Str "A",Space,Str "third",Space,Str "paragraph"] ] diff --git a/tests/rst-reader.rst b/tests/rst-reader.rst index f3d07b49d..09ff2b75c 100644 --- a/tests/rst-reader.rst +++ b/tests/rst-reader.rst @@ -402,3 +402,29 @@ From "Voyage dans la Lune" by Georges Melies (1902): Here is a movie |movie| icon. .. |movie| image:: movie.jpg + +Comments +======== + +First paragraph + +.. comment + +.. + Comment block, should not appear in output + as defined by reStructuredText + +Another paragraph + +.. + Another comment block. + + This one spans several + text elements. + + It doesn't end until + indentation is restored to the + preceding level. + +A third paragraph + |