diff options
-rw-r--r-- | src/Text/Pandoc/Readers/RST.hs | 16 | ||||
-rw-r--r-- | tests/rst-reader.native | 11 | ||||
-rw-r--r-- | tests/rst-reader.rst | 14 |
3 files changed, 40 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/RST.hs b/src/Text/Pandoc/Readers/RST.hs index 000a8b97a..83c5383bd 100644 --- a/src/Text/Pandoc/Readers/RST.hs +++ b/src/Text/Pandoc/Readers/RST.hs @@ -355,7 +355,21 @@ blockQuote = try (do -- list blocks -- -list = choice [ bulletList, orderedList ] <?> "list" +list = choice [ bulletList, orderedList, definitionList ] <?> "list" + +definitionListItem = try $ do + term <- many1Till inline endline + raw <- indentedBlock True + -- parse the extracted block, which may contain various block elements: + rest <- getInput + setInput $ raw ++ "\n\n" + contents <- parseBlocks + setInput rest + return (normalizeSpaces term, contents) + +definitionList = try $ do + items <- many1 definitionListItem + return (DefinitionList items) -- parses bullet list start and returns its length (inc. following whitespace) bulletListStart = try (do diff --git a/tests/rst-reader.native b/tests/rst-reader.native index 6c01dc246..b783145fb 100644 --- a/tests/rst-reader.native +++ b/tests/rst-reader.native @@ -117,6 +117,17 @@ Pandoc (Meta [Str "Pandoc",Space,Str "Test",Space,Str "Suite",Str ":",Space,Str [ [ Plain [Str "Fee"] ] , [ Plain [Str "Fie"] ] , [ Plain [Str "Foe"] ] ] ] ], [ Para [Str "Third"] ] ] +, Header 2 [Str "Definition"] +, DefinitionList + [ ([Str "term",Space,Str "1"], + [ Para [Str "Definition",Space,Str "1."] ] + ), + ([Str "term",Space,Str "2"], + [ Para [Str "Definition",Space,Str "2,",Space,Str "paragraph",Space,Str "1."] + , Para [Str "Definition",Space,Str "2,",Space,Str "paragraph",Space,Str "2."] ] ), + ([Str "term",Space,Str "with",Space,Emph [Str "emphasis"]], + [ Para [Str "Definition",Space,Str "3."] ] + ) ] , Header 1 [Str "HTML",Space,Str "Blocks"] , Para [Str "Simple",Space,Str "block",Space,Str "on",Space,Str "one",Space,Str "line",Str ":"] , RawHtml "<div>foo</div>\n" diff --git a/tests/rst-reader.rst b/tests/rst-reader.rst index cedc7b4ae..a31c14b3a 100644 --- a/tests/rst-reader.rst +++ b/tests/rst-reader.rst @@ -211,6 +211,20 @@ Here's another: 3. Third +Definition +---------- + +term 1 + Definition 1. + +term 2 + Definition 2, paragraph 1. + + Definition 2, paragraph 2. + +term with *emphasis* + Definition 3. + HTML Blocks =========== |