Markdown writer: proper support for headerless tables.

git-svn-id: https://pandoc.googlecode.com/svn/trunk@1876 788f1e2b-df1e-0410-8736-df70ead52e1b
This commit is contained in:
fiddlosopher 2010-03-10 07:34:10 +00:00
parent 8382de28de
commit 3b9e7f36eb
2 changed files with 31 additions and 4 deletions

View file

@ -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"

View file

@ -56,5 +56,24 @@ Multiline table without caption:
rows.
--------------------------------------------------------------
Table without column headers:
----- ----- ----- -----
12 12 12 12
123 123 123 123
1 1 1 1
----- ----- ----- -----
Multiline table without column headers:
----------- ---------- ------------ --------------------------
First row 12.0 Example of a row that
spans multiple lines.
Second row 5.0 Here's another one. Note
the blank line between
rows.
----------- ---------- ------------ --------------------------