aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2014-03-05 13:01:23 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2014-03-05 13:01:23 -0800
commitf3c9d3788530e450d1bb23a4fd829bc5a6eed266 (patch)
tree410cf49e56e2b3124f161645956cc8ff8bd36cd3
parent6fda3619770f7c07ccbfc8a51614c55e01b740d8 (diff)
downloadpandoc-f3c9d3788530e450d1bb23a4fd829bc5a6eed266.tar.gz
HTML writer: Add colgroup around col tags.
Also affects EPUB writer. Closes #877.
-rw-r--r--src/Text/Pandoc/Writers/HTML.hs15
-rw-r--r--tests/tables.html6
2 files changed, 16 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
index 3ac2a836f..e0385af25 100644
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -533,11 +533,16 @@ blockToHtml opts (Table capt aligns widths headers rows') = do
let percent w = show (truncate (100*w) :: Integer) ++ "%"
let coltags = if all (== 0.0) widths
then mempty
- else mconcat $ map (\w ->
- if writerHtml5 opts
- then H.col ! A.style (toValue $ "width: " ++ percent w)
- else H.col ! A.width (toValue $ percent w) >> nl opts)
- widths
+ else do
+ H.colgroup $ do
+ nl opts
+ mapM_ (\w -> do
+ if writerHtml5 opts
+ then H.col ! A.style (toValue $ "width: " ++
+ percent w)
+ else H.col ! A.width (toValue $ percent w)
+ nl opts) widths
+ nl opts
head' <- if all null headers
then return mempty
else do
diff --git a/tests/tables.html b/tests/tables.html
index b72aa784e..a9b2b247d 100644
--- a/tests/tables.html
+++ b/tests/tables.html
@@ -96,10 +96,12 @@
<p>Multiline table with caption:</p>
<table>
<caption>Here's the caption. It may span multiple lines.</caption>
+<colgroup>
<col width="15%" />
<col width="13%" />
<col width="16%" />
<col width="33%" />
+</colgroup>
<thead>
<tr class="header">
<th align="center">Centered Header</th>
@@ -125,10 +127,12 @@
</table>
<p>Multiline table without caption:</p>
<table>
+<colgroup>
<col width="15%" />
<col width="13%" />
<col width="16%" />
<col width="33%" />
+</colgroup>
<thead>
<tr class="header">
<th align="center">Centered Header</th>
@@ -177,10 +181,12 @@
</table>
<p>Multiline table without column headers:</p>
<table>
+<colgroup>
<col width="15%" />
<col width="13%" />
<col width="16%" />
<col width="33%" />
+</colgroup>
<tbody>
<tr class="odd">
<td align="center">First</td>