aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Writers/HTML.hs16
-rw-r--r--test/tables/nordics.html422
-rw-r--r--test/tables/nordics.html522
-rw-r--r--test/tables/nordics.native22
4 files changed, 43 insertions, 39 deletions
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
index decc487c1..9e6e22283 100644
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -948,8 +948,8 @@ tableBodyToHtml :: PandocMonad m
=> WriterOptions
-> Ann.TableBody
-> StateT WriterState m Html
-tableBodyToHtml opts (Ann.TableBody _attr _rowHeadCols _intm rows) =
- H.tbody <$> bodyRowsToHtml opts rows
+tableBodyToHtml opts (Ann.TableBody attr _rowHeadCols _intm rows) =
+ addAttrs opts attr . H.tbody =<< bodyRowsToHtml opts rows
tableHeadToHtml :: PandocMonad m
=> WriterOptions
@@ -1060,7 +1060,7 @@ tableRowToHtml :: PandocMonad m
=> WriterOptions
-> TableRow
-> StateT WriterState m Html
-tableRowToHtml opts (TableRow tblpart _attr rownum rowhead rowbody) = do
+tableRowToHtml opts (TableRow tblpart attr rownum rowhead rowbody) = do
let rowclass = A.class_ $ case rownum of
Ann.RowNumber x | x `rem` 2 == 1 -> "odd"
_ | tblpart /= Thead -> "even"
@@ -1068,10 +1068,14 @@ tableRowToHtml opts (TableRow tblpart _attr rownum rowhead rowbody) = do
let celltype = case tblpart of
Thead -> HeaderCell
_ -> BodyCell
- head' <- mapM (cellToHtml opts HeaderCell) rowhead
- body <- mapM (cellToHtml opts celltype) rowbody
+ headcells <- mapM (cellToHtml opts HeaderCell) rowhead
+ bodycells <- mapM (cellToHtml opts celltype) rowbody
+ rowHtml <- addAttrs opts attr $ H.tr ! rowclass $ do
+ nl opts
+ mconcat headcells
+ mconcat bodycells
return $ do
- H.tr ! rowclass $ nl opts *> mconcat (head' <> body)
+ rowHtml
nl opts
alignmentToString :: Alignment -> Maybe Text
diff --git a/test/tables/nordics.html4 b/test/tables/nordics.html4
index 13fa1976d..a0d15e1bd 100644
--- a/test/tables/nordics.html4
+++ b/test/tables/nordics.html4
@@ -1,4 +1,4 @@
-<table>
+<table id="nordics" source="wikipedia">
<caption><p>States belonging to the <em>Nordics.</em></p></caption>
<colgroup>
<col width="30%" />
@@ -6,7 +6,7 @@
<col width="20%" />
<col width="20%" />
</colgroup>
-<thead>
+<thead class="simple-head">
<tr class="header">
<th align="center">Name</th>
<th align="center">Capital</th>
@@ -16,43 +16,43 @@
(in km<sup>2</sup>)</th>
</tr>
</thead>
-<tbody>
-<tr class="odd">
+<tbody class="souvereign-states">
+<tr class="odd" class="country">
<th align="center">Denmark</th>
<td align="left">Copenhagen</td>
<td align="left">5,809,502</td>
<td align="left">43,094</td>
</tr>
-<tr class="even">
+<tr class="even" class="country">
<th align="center">Finland</th>
<td align="left">Helsinki</td>
<td align="left">5,537,364</td>
<td align="left">338,145</td>
</tr>
-<tr class="odd">
+<tr class="odd" class="country">
<th align="center">Iceland</th>
<td align="left">Reykjavik</td>
<td align="left">343,518</td>
<td align="left">103,000</td>
</tr>
-<tr class="even">
+<tr class="even" class="country">
<th align="center">Norway</th>
<td align="left">Oslo</td>
<td align="left">5,372,191</td>
<td align="left">323,802</td>
</tr>
-<tr class="odd">
+<tr class="odd" class="country">
<th align="center">Sweden</th>
<td align="left">Stockholm</td>
<td align="left">10,313,447</td>
<td align="left">450,295</td>
</tr>
</tbody><tfoot>
-<tr class="even">
+<tr class="even" id="summary">
<td align="center">Total</td>
<td align="left"></td>
-<td align="left">27,376,022</td>
-<td align="left">1,258,336</td>
+<td align="left" id="total-population">27,376,022</td>
+<td align="left" id="total-area">1,258,336</td>
</tr>
</tfoot>
diff --git a/test/tables/nordics.html5 b/test/tables/nordics.html5
index f0dd8b958..f52cf8e4c 100644
--- a/test/tables/nordics.html5
+++ b/test/tables/nordics.html5
@@ -1,4 +1,4 @@
-<table>
+<table id="nordics" data-source="wikipedia">
<caption><p>States belonging to the <em>Nordics.</em></p></caption>
<colgroup>
<col style="width: 30%" />
@@ -6,7 +6,7 @@
<col style="width: 20%" />
<col style="width: 20%" />
</colgroup>
-<thead>
+<thead class="simple-head">
<tr class="header">
<th style="text-align: center;">Name</th>
<th style="text-align: center;">Capital</th>
@@ -16,43 +16,43 @@
(in km<sup>2</sup>)</th>
</tr>
</thead>
-<tbody>
-<tr class="odd">
+<tbody class="souvereign-states">
+<tr class="odd" class="country">
<th style="text-align: center;">Denmark</th>
<td style="text-align: left;">Copenhagen</td>
<td style="text-align: left;">5,809,502</td>
<td style="text-align: left;">43,094</td>
</tr>
-<tr class="even">
+<tr class="even" class="country">
<th style="text-align: center;">Finland</th>
<td style="text-align: left;">Helsinki</td>
<td style="text-align: left;">5,537,364</td>
<td style="text-align: left;">338,145</td>
</tr>
-<tr class="odd">
+<tr class="odd" class="country">
<th style="text-align: center;">Iceland</th>
<td style="text-align: left;">Reykjavik</td>
<td style="text-align: left;">343,518</td>
<td style="text-align: left;">103,000</td>
</tr>
-<tr class="even">
+<tr class="even" class="country">
<th style="text-align: center;">Norway</th>
<td style="text-align: left;">Oslo</td>
<td style="text-align: left;">5,372,191</td>
<td style="text-align: left;">323,802</td>
</tr>
-<tr class="odd">
+<tr class="odd" class="country">
<th style="text-align: center;">Sweden</th>
<td style="text-align: left;">Stockholm</td>
<td style="text-align: left;">10,313,447</td>
<td style="text-align: left;">450,295</td>
</tr>
</tbody><tfoot>
-<tr class="even">
+<tr class="even" id="summary">
<td style="text-align: center;">Total</td>
<td style="text-align: left;"></td>
-<td style="text-align: left;">27,376,022</td>
-<td style="text-align: left;">1,258,336</td>
+<td style="text-align: left;" id="total-population">27,376,022</td>
+<td style="text-align: left;" id="total-area">1,258,336</td>
</tr>
</tfoot>
diff --git a/test/tables/nordics.native b/test/tables/nordics.native
index dc6a33b39..01585c70d 100644
--- a/test/tables/nordics.native
+++ b/test/tables/nordics.native
@@ -1,46 +1,46 @@
-[Table ("",[],[]) (Caption (Just [Str "Nordic countries"])
+[Table ("nordics",[],[("source","wikipedia")]) (Caption (Just [Str "Nordic countries"])
[Para [Str "States", Space, Str "belonging", Space, Str "to", Space, Str "the", Space, Emph [Str "Nordics."]]])
[(AlignCenter,ColWidth 0.3)
,(AlignLeft,ColWidth 0.3)
,(AlignLeft,ColWidth 0.2)
,(AlignLeft,ColWidth 0.2)]
- (TableHead ("",[],[])
+ (TableHead ("",["simple-head"],[])
[Row ("",[],[])
[Cell ("",[],[]) AlignCenter (RowSpan 1) (ColSpan 1) [Plain [Str "Name"]]
,Cell ("",[],[]) AlignCenter (RowSpan 1) (ColSpan 1) [Plain [Str "Capital"]]
,Cell ("",[],[]) AlignCenter (RowSpan 1) (ColSpan 1) [Plain [Str "Population", LineBreak, Str "(in", Space, Str "2018)"]]
,Cell ("",[],[]) AlignCenter (RowSpan 1) (ColSpan 1) [Plain [Str "Area", LineBreak, Str "(in", Space, Str "km", Superscript [Str "2"], Str ")"]]]])
- [(TableBody ("",[],[]) (RowHeadColumns 1)
+ [(TableBody ("",["souvereign-states"],[]) (RowHeadColumns 1)
[]
- [Row ("",[],[])
+ [Row ("",["country"],[])
[Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Denmark"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Copenhagen"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "5,809,502"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "43,094"]]]
- ,Row ("",[],[])
+ ,Row ("",["country"],[])
[Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Finland"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Helsinki"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "5,537,364"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "338,145"]]]
- ,Row ("",[],[])
+ ,Row ("",["country"],[])
[Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Iceland"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Reykjavik"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "343,518"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "103,000"]]]
- ,Row ("",[],[])
+ ,Row ("",["country"],[])
[Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Norway"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Oslo"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "5,372,191"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "323,802"]]]
- ,Row ("",[],[])
+ ,Row ("",["country"],[])
[Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Sweden"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Stockholm"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "10,313,447"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "450,295"]]]])]
(TableFoot ("",[],[])
- [Row ("",[],[])
+ [Row ("summary",[],[])
[Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "Total"]]
,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) []
- ,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "27,376,022"]]
- ,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "1,258,336"]]]])
+ ,Cell ("total-population",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "27,376,022"]]
+ ,Cell ("total-area",[],[]) AlignDefault (RowSpan 1) (ColSpan 1) [Plain [Str "1,258,336"]]]])
]