git.iko.soy/typeable/pandoc
on master help sign in
DocBook reader: Improved def lists with multiple defs.
8ba8a72John MacFarlane
src/Text/Pandoc/Readers/DocBook.hs+4−6
@@ -651,13 +651,11 @@ parseBlock (Elem e) =
651 deflistitems = mapM parseVarListEntry $ filterChildren
651 deflistitems = mapM parseVarListEntry $ filterChildren
652 (named "varlistentry") e
652 (named "varlistentry") e
653 parseVarListEntry e' = do
653 parseVarListEntry e' = do
654− let defs = filterChildren (named "term") e'
654+ let terms = filterChildren (named "term") e'
655 let items = filterChildren (named "listitem") e'
655 let items = filterChildren (named "listitem") e'
656− defs' <- mapM ((mconcat <$>) . mapM parseInline)
656+ terms' <- mapM ((trimInlines . mconcat <$>) . mapM parseInline . elContent) terms
657− $ map elContent defs
658− items' <- mapM ((mconcat <$>) . mapM parseBlock)
657+ items' <- mapM ((mconcat <$>) . mapM parseBlock . elContent) items
659− $ map elContent items
660− return (trimInlines $ mconcat $ intersperse (str "; ") defs', items')
658+ return (mconcat $ intersperse (str "; ") terms', items')
661 getTitle = case filterChild (named "title") e of
659 getTitle = case filterChild (named "title") e of
662 Just t -> do
660 Just t -> do
663 tit <- getInlines t
661 tit <- getInlines t
tests/docbook-reader.native+11−11
@@ -24,7 +24,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
24 [Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]
24 [Para [Str "Code",Space,Str "in",Space,Str "a",Space,Str "block",Space,Str "quote:"]
25 ,CodeBlock ("",[],[]) "sub status {\n print \"working\";\n}"
25 ,CodeBlock ("",[],[]) "sub status {\n print \"working\";\n}"
26 ,Para [Str "A",Space,Str "list:"]
26 ,Para [Str "A",Space,Str "list:"]
27− ,OrderedList (1,Decimal,Period)
27+ ,OrderedList (1,Decimal,DefaultDelim)
28 [[Para [Str "item",Space,Str "one"]]
28 [[Para [Str "item",Space,Str "one"]]
29 ,[Para [Str "item",Space,Str "two"]]]
29 ,[Para [Str "item",Space,Str "two"]]]
30 ,Para [Str "Nested",Space,Str "block",Space,Str "quotes:"]
30 ,Para [Str "Nested",Space,Str "block",Space,Str "quotes:"]
@@ -57,17 +57,17 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
57 ,[Para [Str "Minus",Space,Str "2"]]
57 ,[Para [Str "Minus",Space,Str "2"]]
58 ,[Para [Str "Minus",Space,Str "3"]]]
58 ,[Para [Str "Minus",Space,Str "3"]]]
59,Header 2 [Str "Ordered"]
59,Header 2 [Str "Ordered"]
60−,OrderedList (1,Decimal,Period)
60+,OrderedList (1,Decimal,DefaultDelim)
61 [[Para [Str "First"]]
61 [[Para [Str "First"]]
62 ,[Para [Str "Second"]]
62 ,[Para [Str "Second"]]
63 ,[Para [Str "Third"]]]
63 ,[Para [Str "Third"]]]
64,Para [Str "and",Space,Str "using",Space,Str "spaces:"]
64,Para [Str "and",Space,Str "using",Space,Str "spaces:"]
65−,OrderedList (1,Decimal,Period)
65+,OrderedList (1,Decimal,DefaultDelim)
66 [[Para [Str "One"]]
66 [[Para [Str "One"]]
67 ,[Para [Str "Two"]]
67 ,[Para [Str "Two"]]
68 ,[Para [Str "Three"]]]
68 ,[Para [Str "Three"]]]
69,Para [Str "Multiple",Space,Str "paragraphs:"]
69,Para [Str "Multiple",Space,Str "paragraphs:"]
70−,OrderedList (1,Decimal,Period)
70+,OrderedList (1,Decimal,DefaultDelim)
71 [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]
71 [[Para [Str "Item",Space,Str "1,",Space,Str "graf",Space,Str "one."]
72 ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]
72 ,Para [Str "Item",Space,Str "1.",Space,Str "graf",Space,Str "two.",Space,Str "The",Space,Str "quick",Space,Str "brown",Space,Str "fox",Space,Str "jumped",Space,Str "over",Space,Str "the",Space,Str "lazy",Space,Str "dog\8217s",Space,Str "back."]]
73 ,[Para [Str "Item",Space,Str "2."]]
73 ,[Para [Str "Item",Space,Str "2."]]
@@ -80,7 +80,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
80 ,BulletList
80 ,BulletList
81 [[Para [Str "Tab"]]]]]]]
81 [[Para [Str "Tab"]]]]]]]
82,Para [Str "Here\8217s",Space,Str "another:"]
82,Para [Str "Here\8217s",Space,Str "another:"]
83−,OrderedList (1,Decimal,Period)
83+,OrderedList (1,Decimal,DefaultDelim)
84 [[Para [Str "First"]]
84 [[Para [Str "First"]]
85 ,[Para [Str "Second:"]
85 ,[Para [Str "Second:"]
86 ,BulletList
86 ,BulletList
@@ -89,7 +89,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
89 ,[Para [Str "Foe"]]]]
89 ,[Para [Str "Foe"]]]]
90 ,[Para [Str "Third"]]]
90 ,[Para [Str "Third"]]]
91,Para [Str "Same",Space,Str "thing",Space,Str "but",Space,Str "with",Space,Str "paragraphs:"]
91,Para [Str "Same",Space,Str "thing",Space,Str "but",Space,Str "with",Space,Str "paragraphs:"]
92−,OrderedList (1,Decimal,Period)
92+,OrderedList (1,Decimal,DefaultDelim)
93 [[Para [Str "First"]]
93 [[Para [Str "First"]]
94 ,[Para [Str "Second:"]
94 ,[Para [Str "Second:"]
95 ,BulletList
95 ,BulletList
@@ -109,16 +109,16 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
109 [[Para [Str "begins",Space,Str "with",Space,Str "2"]]
109 [[Para [Str "begins",Space,Str "with",Space,Str "2"]]
110 ,[Para [Str "and",Space,Str "now",Space,Str "3"]
110 ,[Para [Str "and",Space,Str "now",Space,Str "3"]
111 ,Para [Str "with",Space,Str "a",Space,Str "continuation"]
111 ,Para [Str "with",Space,Str "a",Space,Str "continuation"]
112− ,OrderedList (4,LowerRoman,Period)
112+ ,OrderedList (4,LowerRoman,DefaultDelim)
113 [[Para [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",Space,Str "starting",Space,Str "with",Space,Str "4"]]
113 [[Para [Str "sublist",Space,Str "with",Space,Str "roman",Space,Str "numerals,",Space,Str "starting",Space,Str "with",Space,Str "4"]]
114 ,[Para [Str "more",Space,Str "items"]
114 ,[Para [Str "more",Space,Str "items"]
115 ,OrderedList (1,UpperAlpha,TwoParens)
115 ,OrderedList (1,UpperAlpha,TwoParens)
116 [[Para [Str "a",Space,Str "subsublist"]]
116 [[Para [Str "a",Space,Str "subsublist"]]
117 ,[Para [Str "a",Space,Str "subsublist"]]]]]]]
117 ,[Para [Str "a",Space,Str "subsublist"]]]]]]]
118,Para [Str "Nesting:"]
118,Para [Str "Nesting:"]
119−,OrderedList (1,UpperAlpha,Period)
119+,OrderedList (1,UpperAlpha,DefaultDelim)
120 [[Para [Str "Upper",Space,Str "Alpha"]
120 [[Para [Str "Upper",Space,Str "Alpha"]
121− ,OrderedList (1,UpperRoman,Period)
121+ ,OrderedList (1,UpperRoman,DefaultDelim)
122 [[Para [Str "Upper",Space,Str "Roman."]
122 [[Para [Str "Upper",Space,Str "Roman."]
123 ,OrderedList (6,Decimal,TwoParens)
123 ,OrderedList (6,Decimal,TwoParens)
124 [[Para [Str "Decimal",Space,Str "start",Space,Str "with",Space,Str "6"]
124 [[Para [Str "Decimal",Space,Str "start",Space,Str "with",Space,Str "6"]
@@ -166,7 +166,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
166 ,[Para [Str "computer"]]])
166 ,[Para [Str "computer"]]])
167 ,([Str "orange"],
167 ,([Str "orange"],
168 [[Para [Str "orange",Space,Str "fruit"]
168 [[Para [Str "orange",Space,Str "fruit"]
169− ,OrderedList (1,Decimal,Period)
169+ ,OrderedList (1,Decimal,DefaultDelim)
170 [[Para [Str "sublist"]]
170 [[Para [Str "sublist"]]
171 ,[Para [Str "sublist"]]]]])]
171 ,[Para [Str "sublist"]]]]])]
172,Header 1 [Str "Inline",Space,Str "Markup"]
172,Header 1 [Str "Inline",Space,Str "Markup"]
@@ -268,7 +268,7 @@ Pandoc (Meta {docTitle = [Str "Pandoc",Space,Str "Test",Space,Str "Suite"], docA
268,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) " { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]]
268,Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Note [Para [Str "Here",Space,Str "is",Space,Str "the",Space,Str "footnote.",Space,Str "It",Space,Str "can",Space,Str "go",Space,Str "anywhere",Space,Str "after",Space,Str "the",Space,Str "footnote",Space,Str "reference.",Space,Str "It",Space,Str "need",Space,Str "not",Space,Str "be",Space,Str "placed",Space,Str "at",Space,Str "the",Space,Str "end",Space,Str "of",Space,Str "the",Space,Str "document."]],Space,Str "and",Space,Str "another.",Note [Para [Str "Here\8217s",Space,Str "the",Space,Str "long",Space,Str "note.",Space,Str "This",Space,Str "one",Space,Str "contains",Space,Str "multiple",Space,Str "blocks."],Para [Str "Subsequent",Space,Str "blocks",Space,Str "are",Space,Str "indented",Space,Str "to",Space,Str "show",Space,Str "that",Space,Str "they",Space,Str "belong",Space,Str "to",Space,Str "the",Space,Str "footnote",Space,Str "(as",Space,Str "with",Space,Str "list",Space,Str "items)."],CodeBlock ("",[],[]) " { <code> }",Para [Str "If",Space,Str "you",Space,Str "want,",Space,Str "you",Space,Str "can",Space,Str "indent",Space,Str "every",Space,Str "line,",Space,Str "but",Space,Str "you",Space,Str "can",Space,Str "also",Space,Str "be",Space,Str "lazy",Space,Str "and",Space,Str "just",Space,Str "indent",Space,Str "the",Space,Str "first",Space,Str "line",Space,Str "of",Space,Str "each",Space,Str "block."]],Space,Str "This",Space,Str "should",Space,Emph [Str "not"],Space,Str "be",Space,Str "a",Space,Str "footnote",Space,Str "reference,",Space,Str "because",Space,Str "it",Space,Str "contains",Space,Str "a",Space,Str "space.[^my",Space,Str "note]",Space,Str "Here",Space,Str "is",Space,Str "an",Space,Str "inline",Space,Str "note.",Note [Para [Str "This",Space,Str "is",Space,Emph [Str "easier"],Space,Str "to",Space,Str "type.",Space,Str "Inline",Space,Str "notes",Space,Str "may",Space,Str "contain",Space,Link [Str "links"] ("http://google.com",""),Space,Str "and",Space,Code ("",[],[]) "]",Space,Str "verbatim",Space,Str "characters,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "[bracketed",Space,Str "text]."]]]
269,BlockQuote
269,BlockQuote
270 [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]]
270 [Para [Str "Notes",Space,Str "can",Space,Str "go",Space,Str "in",Space,Str "quotes.",Note [Para [Str "In",Space,Str "quote."]]]]
271−,OrderedList (1,Decimal,Period)
271+,OrderedList (1,Decimal,DefaultDelim)
272 [[Para [Str "And",Space,Str "in",Space,Str "list",Space,Str "items.",Note [Para [Str "In",Space,Str "list."]]]]]
272 [[Para [Str "And",Space,Str "in",Space,Str "list",Space,Str "items.",Note [Para [Str "In",Space,Str "list."]]]]]
273,Para [Str "This",Space,Str "paragraph",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "note,",Space,Str "as",Space,Str "it",Space,Str "is",Space,Str "not",Space,Str "indented."]
273,Para [Str "This",Space,Str "paragraph",Space,Str "should",Space,Str "not",Space,Str "be",Space,Str "part",Space,Str "of",Space,Str "the",Space,Str "note,",Space,Str "as",Space,Str "it",Space,Str "is",Space,Str "not",Space,Str "indented."]
274,Header 1 [Str "Tables"]
274,Header 1 [Str "Tables"]