diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2022-05-18 09:55:22 -0700 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2022-05-18 09:55:22 -0700 |
| commit | b8fb79b5c0d3d2dc07f321e633d6b24a800ef130 (patch) | |
| tree | ea54a2384b4034270be35660f8c7d5402b09d304 | |
| parent | 6ea83c185c406d8c81d22da02da4ece0c1ba161f (diff) | |
ICML writer: support custom-style attribute on Table.
Closes #8079.
| -rw-r--r-- | src/Text/Pandoc/Writers/ICML.hs | 9 | ||||
| -rw-r--r-- | test/command/8079.md | 19 |
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> +``` |
