aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/RST.hs16
-rw-r--r--tests/rst-reader.native11
-rw-r--r--tests/rst-reader.rst14
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
===========