summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2022-05-18 09:55:22 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2022-05-18 09:55:22 -0700
commitb8fb79b5c0d3d2dc07f321e633d6b24a800ef130 (patch)
treeea54a2384b4034270be35660f8c7d5402b09d304
parent6ea83c185c406d8c81d22da02da4ece0c1ba161f (diff)
ICML writer: support custom-style attribute on Table.
Closes #8079.
-rw-r--r--src/Text/Pandoc/Writers/ICML.hs9
-rw-r--r--test/command/8079.md19
2 files changed, 25 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Writers/ICML.hs b/src/Text/Pandoc/Writers/ICML.hs
index 8d75bb7df..7f0c4d5a7 100644
--- a/src/Text/Pandoc/Writers/ICML.hs
+++ b/src/Text/Pandoc/Writers/ICML.hs
@@ -333,8 +333,9 @@ blockToICML opts style (Header lvl (ident, cls, _) lst) =
else ""
in parStyle opts stl ident lst
blockToICML _ _ HorizontalRule = return empty -- we could insert a page break instead
-blockToICML opts style (Table _ blkCapt specs thead tbody tfoot) =
- let (caption, aligns, widths, headers, rows) = toLegacyTable blkCapt specs thead tbody tfoot
+blockToICML opts style (Table attr blkCapt specs thead tbody tfoot) =
+ let (caption, aligns, widths, headers, rows) =
+ toLegacyTable blkCapt specs thead tbody tfoot
style' = tableName : style
noHeader = all null headers
nrHeaders = if noHeader
@@ -370,8 +371,10 @@ blockToICML opts style (Table _ blkCapt specs thead tbody tfoot) =
[("SingleColumnWidth",tshow $ 500 * w) | w > 0]
let tupToDoc tup = selfClosingTag "Column" $ ("Name",tshow $ fst tup) : colWidths (snd tup)
let colDescs = vcat $ zipWith (curry tupToDoc) [0..nrCols-1] widths
+ let (_,_,kvs) = attr
+ let dynamicStyle = fromMaybe "Table" (lookup dynamicStyleKey kvs)
let tableDoc = return $ inTags True "Table" [
- ("AppliedTableStyle","TableStyle/Table")
+ ("AppliedTableStyle","TableStyle/" <> dynamicStyle)
, ("HeaderRowCount", nrHeaders)
, ("BodyRowCount", tshow nrRows)
, ("ColumnCount", tshow nrCols)
diff --git a/test/command/8079.md b/test/command/8079.md
new file mode 100644
index 000000000..a6adf491d
--- /dev/null
+++ b/test/command/8079.md
@@ -0,0 +1,19 @@
+```
+% pandoc -f html -t icml
+<table custom-style="Foo">
+<tr><td>one</td></tr>
+</table>
+^D
+<Table AppliedTableStyle="TableStyle/Foo" HeaderRowCount="0" BodyRowCount="1" ColumnCount="1">
+ <Column Name="0" />
+ <Cell Name="0:0" AppliedCellStyle="CellStyle/Cell">
+ <ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TablePar">
+ <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
+ <Content>one</Content>
+ </CharacterStyleRange>
+ </ParagraphStyleRange>
+ </Cell>
+</Table>
+<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/TableCaption">
+</ParagraphStyleRange>
+```