diff options
| author | John MacFarlane <[email protected]> | 2024-12-17 12:10:40 -0800 |
|---|---|---|
| committer | John MacFarlane <[email protected]> | 2024-12-17 12:10:40 -0800 |
| commit | 05ba8a0ffaa954fa36e4bedf5196c8f137a328c2 (patch) | |
| tree | 2f17ef829d2996382531bbccc036064e84f45bf3 | |
| parent | 7d1962b61721784c18ddfd063102f5cbaa4996c7 (diff) | |
Docx writer: use styleIds not styleNames for Title, Subtitle, etc.issue10282
This change affects the default openxml template as well as the
OpenXML writer.
Closes #10282 (regression introduced in pandoc 3.5).
| -rw-r--r-- | data/templates/default.openxml | 10 | ||||
| -rw-r--r-- | src/Text/Pandoc/Writers/Docx/OpenXML.hs | 8 |
2 files changed, 13 insertions, 5 deletions
diff --git a/data/templates/default.openxml b/data/templates/default.openxml index 0cfc6e1a2..000609df7 100644 --- a/data/templates/default.openxml +++ b/data/templates/default.openxml @@ -4,7 +4,7 @@ $if(title)$ <w:p> <w:pPr> - <w:pStyle w:val="Title" /> + <w:pStyle w:val="$title-style-id$" /> </w:pPr> $title$ </w:p> @@ -12,7 +12,7 @@ $endif$ $if(subtitle)$ <w:p> <w:pPr> - <w:pStyle w:val="Subtitle" /> + <w:pStyle w:val="$subtitle-style-id$" /> </w:pPr> $subtitle$ </w:p> @@ -20,7 +20,7 @@ $endif$ $for(author)$ <w:p> <w:pPr> - <w:pStyle w:val="Author" /> + <w:pStyle w:val="$author-style-id$" /> </w:pPr> $author$ </w:p> @@ -28,7 +28,7 @@ $endfor$ $if(date)$ <w:p> <w:pPr> - <w:pStyle w:val="Date" /> + <w:pStyle w:val="$date-style-id$" /> </w:pPr> $date$ </w:p> @@ -37,7 +37,7 @@ $if(abstract)$ $if(abstract-title)$ <w:p> <w:pPr> - <w:pStyle w:val="AbstractTitle" /> + <w:pStyle w:val="$abstract-title-style-id$" /> </w:pPr> <w:r><w:t xml:space="preserve">$abstract-title$</w:t></w:r> </w:p> diff --git a/src/Text/Pandoc/Writers/Docx/OpenXML.hs b/src/Text/Pandoc/Writers/Docx/OpenXML.hs index e3900f32f..6713d9c07 100644 --- a/src/Text/Pandoc/Writers/Docx/OpenXML.hs +++ b/src/Text/Pandoc/Writers/Docx/OpenXML.hs @@ -286,6 +286,8 @@ writeOpenXML opts (Pandoc meta blocks) = do (fmap (vcat . map (literal . showContent)) . blocksToOpenXML opts) (fmap (hcat . map (literal . showContent)) . inlinesToOpenXML opts) meta + cStyleMap <- gets (smParaStyle . stStyleMaps) + let styleIdOf name = fromStyleId $ getStyleIdFromName name cStyleMap let context = resetField "body" body . resetField "toc" (vcat (map (literal . showElement) toc)) @@ -299,6 +301,12 @@ writeOpenXML opts (Pandoc meta blocks) = do . resetField "date" date . resetField "abstract-title" abstractTitle . resetField "abstract" abstract + . resetField "title-style-id" (styleIdOf "Title") + . resetField "subtitle-style-id" (styleIdOf "Subtitle") + . resetField "author-style-id" (styleIdOf "Author") + . resetField "date-style-id" (styleIdOf "Date") + . resetField "abstract-title-style-id" (styleIdOf "AbstractTitle") + . resetField "abstract-style-id" (styleIdOf "Abstract") $ metadata tpl <- maybe (lift $ compileDefaultTemplate "openxml") pure $ writerTemplate opts let rendered = render Nothing $ renderTemplate tpl context |
