git.iko.soy/typeable/pandoc
on master help sign in
Fix duplicate "class" attribute in HTML writer
commitf1f2728259ca0258a9870028a5c05b5973efdc20 authorAndy Morris <hello@andy-morris.xyz> dateFri 30 Oct 2020, 15:22 (6 years ago) parent3e6d009
3 files changed+16−14
src/Text/Pandoc/Writers/HTML.hs+4−2 test/tables/nordics.html4+6−6 test/tables/nordics.html5+6−6
src/Text/Pandoc/Writers/HTML.hs+4−2
@@ -1089,16 +1089,18 @@ tableRowToHtml :: PandocMonad m
10891089 -> TableRow
10901090 -> StateT WriterState m Html
10911091tableRowToHtml opts (TableRow tblpart attr rownum rowhead rowbody) = do
1092− let rowclass = A.class_ $ case rownum of
1092+ let rowclass = case rownum of
10931093 Ann.RowNumber x | x `rem` 2 == 1 -> "odd"
10941094 _ | tblpart /= Thead -> "even"
10951095 _ -> "header"
1096+ let attr' = case attr of
1097+ (id', classes, rest) -> (id', rowclass:classes, rest)
10961098 let celltype = case tblpart of
10971099 Thead -> HeaderCell
10981100 _ -> BodyCell
10991101 headcells <- mapM (cellToHtml opts HeaderCell) rowhead
11001102 bodycells <- mapM (cellToHtml opts celltype) rowbody
1101− rowHtml <- addAttrs opts attr $ H.tr ! rowclass $ do
1103+ rowHtml <- addAttrs opts attr' $ H.tr $ do
11021104 nl opts
11031105 mconcat headcells
11041106 mconcat bodycells
test/tables/nordics.html4+6−6
@@ -17,38 +17,38 @@
1717</tr>
1818</thead>
1919<tbody class="souvereign-states">
20−<tr class="odd" class="country">
20+<tr class="odd country">
2121<th align="center">Denmark</th>
2222<td align="left">Copenhagen</td>
2323<td align="left">5,809,502</td>
2424<td align="left">43,094</td>
2525</tr>
26−<tr class="even" class="country">
26+<tr class="even country">
2727<th align="center">Finland</th>
2828<td align="left">Helsinki</td>
2929<td align="left">5,537,364</td>
3030<td align="left">338,145</td>
3131</tr>
32−<tr class="odd" class="country">
32+<tr class="odd country">
3333<th align="center">Iceland</th>
3434<td align="left">Reykjavik</td>
3535<td align="left">343,518</td>
3636<td align="left">103,000</td>
3737</tr>
38−<tr class="even" class="country">
38+<tr class="even country">
3939<th align="center">Norway</th>
4040<td align="left">Oslo</td>
4141<td align="left">5,372,191</td>
4242<td align="left">323,802</td>
4343</tr>
44−<tr class="odd" class="country">
44+<tr class="odd country">
4545<th align="center">Sweden</th>
4646<td align="left">Stockholm</td>
4747<td align="left">10,313,447</td>
4848<td align="left">450,295</td>
4949</tr>
5050</tbody><tfoot>
51−<tr class="even" id="summary">
51+<tr id="summary" class="even">
5252<td align="center">Total</td>
5353<td align="left"></td>
5454<td align="left" id="total-population">27,376,022</td>
test/tables/nordics.html5+6−6
@@ -17,38 +17,38 @@
1717</tr>
1818</thead>
1919<tbody class="souvereign-states">
20−<tr class="odd" class="country">
20+<tr class="odd country">
2121<th style="text-align: center;">Denmark</th>
2222<td style="text-align: left;">Copenhagen</td>
2323<td style="text-align: left;">5,809,502</td>
2424<td style="text-align: left;">43,094</td>
2525</tr>
26−<tr class="even" class="country">
26+<tr class="even country">
2727<th style="text-align: center;">Finland</th>
2828<td style="text-align: left;">Helsinki</td>
2929<td style="text-align: left;">5,537,364</td>
3030<td style="text-align: left;">338,145</td>
3131</tr>
32−<tr class="odd" class="country">
32+<tr class="odd country">
3333<th style="text-align: center;">Iceland</th>
3434<td style="text-align: left;">Reykjavik</td>
3535<td style="text-align: left;">343,518</td>
3636<td style="text-align: left;">103,000</td>
3737</tr>
38−<tr class="even" class="country">
38+<tr class="even country">
3939<th style="text-align: center;">Norway</th>
4040<td style="text-align: left;">Oslo</td>
4141<td style="text-align: left;">5,372,191</td>
4242<td style="text-align: left;">323,802</td>
4343</tr>
44−<tr class="odd" class="country">
44+<tr class="odd country">
4545<th style="text-align: center;">Sweden</th>
4646<td style="text-align: left;">Stockholm</td>
4747<td style="text-align: left;">10,313,447</td>
4848<td style="text-align: left;">450,295</td>
4949</tr>
5050</tbody><tfoot>
51−<tr class="even" id="summary">
51+<tr id="summary" class="even">
5252<td style="text-align: center;">Total</td>
5353<td style="text-align: left;"></td>
5454<td style="text-align: left;" id="total-population">27,376,022</td>