@@ -152,6 +152,24 @@ elementToDocbook opts (Sec title elements) =
152152blocksToDocbook :: WriterOptions -> [Block] -> Doc
153153blocksToDocbook opts = vcat . map (blockToDocbook opts)
154154
155+-- | Auxiliary function to convert Plain block to Para.
156+plainToPara (Plain x) = Para x
157+plainToPara x = x
158+
159+-- | Convert a list of pairs of terms and definitions into a list of
160+-- Docbook varlistentrys.
161+deflistItemsToDocbook :: WriterOptions -> [([Inline],[Block])] -> Doc
162+deflistItemsToDocbook opts items =
163+ vcat $ map (\(term, def) -> deflistItemToDocbook opts term def) items
164+
165+-- | Convert a term and a list of blocks into a Docbook varlistentry.
166+deflistItemToDocbook :: WriterOptions -> [Inline] -> [Block] -> Doc
167+deflistItemToDocbook opts term def =
168+ let def' = map plainToPara def in
169+ inTagsIndented "varlistentry" $
170+ inTagsIndented "term" (inlinesToDocbook opts term) $$
171+ inTagsIndented "listitem" (blocksToDocbook opts def')
172+
155173-- | Convert a list of lists of blocks to a list of Docbook list items.
156174listItemsToDocbook :: WriterOptions -> [[Block]] -> Doc
157175listItemsToDocbook opts items =
@@ -160,8 +178,6 @@ listItemsToDocbook opts items =
160178-- | Convert a list of blocks into a Docbook list item.
161179listItemToDocbook :: WriterOptions -> [Block] -> Doc
162180listItemToDocbook opts item =
163− let plainToPara (Plain x) = Para x
164− plainToPara y = y in
165181 let item' = map plainToPara item in
166182 inTagsIndented "listitem" (blocksToDocbook opts item')
167183
@@ -179,6 +195,8 @@ blockToDocbook opts (BulletList lst) =
179195 inTagsIndented "itemizedlist" $ listItemsToDocbook opts lst
180196blockToDocbook opts (OrderedList lst) =
181197 inTagsIndented "orderedlist" $ listItemsToDocbook opts lst
198+blockToDocbook opts (DefinitionList lst) =
199+ inTagsIndented "variablelist" $ deflistItemsToDocbook opts lst
182200blockToDocbook opts (RawHtml str) = text str -- raw XML block
183201blockToDocbook opts HorizontalRule = empty -- not semantic
184202blockToDocbook opts (Table caption aligns widths headers rows) =