From 6a6b1a5842e6218168bca1bf6f04c8d395b60441 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Mon, 23 Jul 2007 01:35:03 +0000 Subject: Added support for definition lists to RST reader. Added a relevant test to the test suite. git-svn-id: https://pandoc.googlecode.com/svn/trunk@782 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Text/Pandoc/Readers/RST.hs | 16 +++++++++++++++- tests/rst-reader.native | 11 +++++++++++ tests/rst-reader.rst | 14 ++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) 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 "
foo
\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 =========== -- cgit v1.2.3