From 3b9e7f36ebc04689739b939edb6b3e351a5d0ea7 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Wed, 10 Mar 2010 07:34:10 +0000 Subject: Markdown writer: proper support for headerless tables. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1876 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Text/Pandoc/Writers/Markdown.hs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/Text') diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index af7ec6e43..96c4fd15d 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -219,20 +219,28 @@ blockToMarkdown opts (Table caption aligns widths headers rows) = do else map (floor . (78 *)) widths let makeRow = hsepBlocks . (zipWith alignHeader aligns) . (zipWith docToBlock widthsInChars) - let head' = makeRow headers' let rows' = map makeRow rawRows + let head' = makeRow headers' let maxRowHeight = maximum $ map heightOfBlock (head':rows') let underline = hsep $ map (\width -> text $ replicate width '-') widthsInChars let border = if maxRowHeight > 1 then text $ replicate (sum widthsInChars + (length widthsInChars - 1)) '-' - else empty + else if all null headers + then underline + else empty + let head'' = if all null headers + then empty + else border $+$ blockToDoc head' let spacer = if maxRowHeight > 1 then text "" else empty let body = vcat $ intersperse spacer $ map blockToDoc rows' - return $ (nest 2 $ border $+$ (blockToDoc head') $+$ underline $+$ body $+$ - border $+$ caption'') <> text "\n" + let bottom = if all null headers + then underline + else border + return $ (nest 2 $ head'' $+$ underline $+$ body $+$ + bottom $+$ caption'') <> text "\n" blockToMarkdown opts (BulletList items) = do contents <- mapM (bulletListItemToMarkdown opts) items return $ (vcat contents) <> text "\n" -- cgit v1.2.3