From d13b0bfe8aaf024edbff8525aa3cb2fdb451b429 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sat, 8 Nov 2025 15:07:05 +0100 Subject: ICML writer: base FirstParagraph styles on corresponding... Paragraph styles. This should ensure that existing documents still work with the FirstParagraph style, without the need to define new styles. --- src/Text/Pandoc/Writers/ICML.hs | 7 ++++++- test/command/5541-localLink.md | 2 +- test/command/5541-urlLink.md | 2 +- test/command/6675.md | 2 +- test/writer.icml | 16 ++++++++-------- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/Text/Pandoc/Writers/ICML.hs b/src/Text/Pandoc/Writers/ICML.hs index d5a52ec90..58d48a5e3 100644 --- a/src/Text/Pandoc/Writers/ICML.hs +++ b/src/Text/Pandoc/Writers/ICML.hs @@ -37,6 +37,7 @@ import Text.Pandoc.Templates (renderTemplate) import Text.Pandoc.Writers.Math (texMathToInlines) import Text.Pandoc.Writers.Shared import Text.Pandoc.XML +import qualified Data.Text as T type Style = [Text] type Hyperlink = [(Int, Text)] @@ -238,7 +239,11 @@ parStylesToDoc st = vcat $ map makeStyle $ Set.toAscList $ blockStyles st font = if codeBlockName `Text.isInfixOf` s then monospacedFont else empty - basedOn = inTags False "BasedOn" [("type", "object")] (text "$ID/NormalParagraphStyle") $$ font + baseStyle = if firstParagraphName `T.isSuffixOf` s + then T.replace firstParagraphName paragraphName s + else "$ID/NormalParagraphStyle" + basedOn = inTags False "BasedOn" [("type", "object")] + (literal baseStyle) $$ font tabList = if isBulletList then inTags True "TabList" [("type","list")] $ inTags True "ListItem" [("type","record")] $ vcat [ diff --git a/test/command/5541-localLink.md b/test/command/5541-localLink.md index 9579dc00e..9214895a0 100644 --- a/test/command/5541-localLink.md +++ b/test/command/5541-localLink.md @@ -42,7 +42,7 @@ if you can read this text, [and it's linked]{#spanner} - all good! - $ID/NormalParagraphStyle + Paragraph diff --git a/test/command/5541-urlLink.md b/test/command/5541-urlLink.md index 00fa750f5..35cd196a7 100644 --- a/test/command/5541-urlLink.md +++ b/test/command/5541-urlLink.md @@ -38,7 +38,7 @@ some more text that [links to](https://www.pandoc.org) Pandoc. - $ID/NormalParagraphStyle + Paragraph diff --git a/test/command/6675.md b/test/command/6675.md index 6d4d2207b..18bb5ad9a 100644 --- a/test/command/6675.md +++ b/test/command/6675.md @@ -40,7 +40,7 @@ and some text that [links to](#header-1) the first header - $ID/NormalParagraphStyle + Paragraph diff --git a/test/writer.icml b/test/writer.icml index d6955b131..e62e65d0b 100644 --- a/test/writer.icml +++ b/test/writer.icml @@ -87,7 +87,7 @@ - $ID/NormalParagraphStyle + Blockquote > Blockquote > Paragraph @@ -103,7 +103,7 @@ - $ID/NormalParagraphStyle + Blockquote > Paragraph @@ -214,7 +214,7 @@ - $ID/NormalParagraphStyle + BulList > first > Paragraph LeftAlign @@ -256,7 +256,7 @@ - $ID/NormalParagraphStyle + DefListDef > Blockquote > Paragraph @@ -292,7 +292,7 @@ - $ID/NormalParagraphStyle + Paragraph @@ -303,7 +303,7 @@ - $ID/NormalParagraphStyle + Footnote > Paragraph @@ -369,7 +369,7 @@ - $ID/NormalParagraphStyle + NumList > Paragraph @@ -440,7 +440,7 @@ - $ID/NormalParagraphStyle + NumList > first > beginsWith-2 > Paragraph -- cgit v1.2.3