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

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

commit292d2bd38dafdfb4a8837b334adc2174c9501169 authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateThu 3 May 2007, 14:44 (19 years ago) parent23841bd
1 file changed+14
src/Text/Pandoc/Writers/Markdown.hs+14
src/Text/Pandoc/Writers/Markdown.hs+14
@@ -163,6 +163,9 @@ blockToMarkdown opts (OrderedList items) = do
163163 contents <- mapM (\(item, num) -> orderedListItemToMarkdown opts item num) $
164164 zip [1..] items
165165 return $ (vcat contents) <> text "\n"
166+blockToMarkdown opts (DefinitionList items) = do
167+ contents <- mapM (definitionListItemToMarkdown opts) items
168+ return $ (vcat contents) <> text "\n"
166169
167170-- | Convert bullet list item (list of blocks) to markdown.
168171bulletListItemToMarkdown :: WriterOptions -> [Block] -> State WriterState Doc
@@ -181,6 +184,17 @@ orderedListItemToMarkdown opts num items = do
181184 return $ hang (text ((show num) ++ "." ++ spacer)) (writerTabStop opts)
182185 contents
183186
187+-- | Convert definition list item (label, list of blocks) to markdown.
188+definitionListItemToMarkdown :: WriterOptions
189+ -> ([Inline],[Block])
190+ -> State WriterState Doc
191+definitionListItemToMarkdown opts (label, items) = do
192+ labelText <- inlineListToMarkdown opts label
193+ contents <- mapM (\item -> blockToMarkdown opts item >>=
194+ (return . hang (text ": ") (writerTabStop opts)))
195+ items >>= (return . vcat)
196+ return $ labelText $+$ contents
197+
184198-- | Convert list of Pandoc block elements to markdown.
185199blockListToMarkdown :: WriterOptions -- ^ Options
186200 -> [Block] -- ^ List of block elements