git.iko.soy/typeable/pandoc
on master help sign in
Added support for definition lists in Docbook writer.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@595 788f1e2b-df1e-0410-8736-df70ead52e1b

commit5454c841a923bc13caa424537a84d24d1c602e40 authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateWed 9 May 2007, 00:47 (19 years ago) parent71cf0a1
1 file changed+20−2
src/Text/Pandoc/Writers/Docbook.hs+20−2
src/Text/Pandoc/Writers/Docbook.hs+20−2
@@ -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) =