summaryrefslogtreecommitdiff
path: root/src/Text
AgeCommit message (Collapse)Author
2024-01-04OPML writer: respect `--wrap` options & `--columns` in contents of notes.John MacFarlane
Closes #9297.
2024-01-04PDF: expand list of environment variables to display in verbose output.John MacFarlane
Closes #9303.
2023-12-30Add command test for #9293.John MacFarlane
2023-12-30MediaWiki reader: handle multiline math in list items.John MacFarlane
Closes #9293.
2023-12-26Add some explicit imports...John MacFarlane
to avoid warnings with some GHC versions.
2023-12-26fix(docx): support absolute header/footer pathsEdwin Török
Header and footer references may be absolute in the reference.docx. E.g. editing it with dotnet's Open-XML-SDK causes this error: ``` + pandoc test.md -t docx --reference-doc referenceh.docx -o test.docx word//word/header1.xml missing in reference docx ``` There was already code in pandoc to handle relative vs absolute paths in references, so use it. Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-26ODT/opendocument writers: properly handle highlighting styles.John MacFarlane
These styles were going into an office:styles element in content.xml, but this is invalid. Instead they must go in styles.xml. See #9287. The variable `highlighting-styles` no longer has any effect on the default opendocument template, and highlighting styles are not included in opendocument output.
2023-12-24T.P.PDF: Ensure that we find all the LaTeX warnings requiring rerun.John MacFarlane
This should fix a regression from 3.1.9 that led to incorrect alignments in tables (and possibly other issues). Closes #9284.
2023-12-22T.P.Chunks: Fine tune `makeChunks`.John MacFarlane
* Ensure that chunks not based on sections (those with the "preamble" class) get unique identifiers, by appending chunk number. * This will also ensure that they get unique path names when the path is generated from the identifier. Closes #9281.
2023-12-22Markdown writer: add table identifier at end of caption if present.John MacFarlane
Suggested at #9279.
2023-12-20Org reader: parse caption and label for grid tables.John MacFarlane
Closes #9279.
2023-12-19fix(docx): sort inline elements in schema orderEdwin Török
Fixes #9273 ``` [ { "Description": "The element has unexpected child element 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:b'.", "Path": { "NamespacesDefinitions": [ "xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"" ], "Namespaces": { }, "XPath": "/w:document[1]/w:body[1]/w:p[1]/w:r[7]/w:rPr[1]", "PartUri": "/word/document.xml" }, "Id": "Sch_UnexpectedElementContentExpectingComplex", "ErrorType": "Schema" } ] ``` Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18LaTeX writer: omit superfluous page locator label...John MacFarlane
when used with `--natbib` or `--biblatex`. These will treat a bare number as a page locator, and they will be able to localize it. We borrow the code for stripping the locator label from the suffix from Citeproc code. Note that the recognition of the locator label is locale-sensitive; if `lang` is `de`, then `S. 33` is a page reference, and `p. 33` is not! Closes #9275.
2023-12-18Docx reader: fix HYPERLINK with only switch and no argument.John MacFarlane
The argument can apparently be omitted, and then we just have a fragment URL. Closes #9246.
2023-12-18fix(docx): fix validation error on endnotePrEdwin Török
Copying `endnotePr` causes validation errors, because it is now referencing something that doesn't exist in the document: ``` { "FilePath": "test/docx/golden/custom_style_reference.docx", "ValidationErrors": "[{\"Description\":\"Element 'w:endnote' referenced by 'endnote@http://schemas.openxmlformats.org/wordprocessingml/2006/main:id' does not exist in part '/MainDocumentPart/EndnotesPart'. The reference value is '0'.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:settings[1]/w:endnotePr[1]/w:endnote[2]\",\"PartUri\":\"/word/settings.xml\"},\"Id\":\"Sem_MissingReferenceElement\",\"ErrorType\":\"Semantic\"},{\"Description\":\"Element 'w:endnote' referenced by 'endnote@http://schemas.openxmlformats.org/wordprocessingml/2006/main:id' does not exist in part '/MainDocumentPart/EndnotesPart'. The reference value is '-1'.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:settings[1]/w:endnotePr[1]/w:endnote[1]\",\"PartUri\":\"/word/settings.xml\"},\"Id\":\"Sem_MissingReferenceElement\",\"ErrorType\":\"Semantic\"}]" } ``` For now don't copy this element, it wasn't copied before, and it doesn't seem necessary to fix the ordering problems we had with settings. Fixes: c9bf4da74 ("Docx writer: ensure that elements in settings are ordered correctly.") Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18fix(docx): fix validation error on w:tblHeaderEdwin Török
``` { "FilePath": "test/docx/golden/tables.docx", "ValidationErrors": "[{\"Description\":\"The attribute 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:val' has invalid value 'true'. The Enumeration constraint failed.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:tbl[1]/w:tr[1]/w:trPr[1]/w:tblHeader[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_AttributeValueDataTypeDetailed\",\"ErrorType\":\"Schema\"}]" } ``` Although this one might actually be a bug in Open-XML-SDK similar to this, or a subtle difference between standard versions: https://github.com/dotnet/Open-XML-SDK/issues/780 Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18fix(docx): use left vs start consistentlyEdwin Török
They are equivalent, but OOXML-Validator complains: ``` { "FilePath": "test/docx/golden/tables_separated_with_rawblock.docx", "ValidationErrors": "[{\"Description\":\"The attribute 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:val' has invalid value 'start'. The Enumeration constraint failed.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:tbl[2]/w:tblPr[1]/w:jc[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_AttributeValueDataTypeDetailed\",\"ErrorType\":\"Schema\"},{\"Description\":\"The attribute 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:val' has invalid value 'start'. The Enumeration constraint failed.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:tbl[1]/w:tblPr[1]/w:jc[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_AttributeValueDataTypeDetailed\",\"ErrorType\":\"Schema\"}]" } ``` pandoc already uses 'left' elsewhere, so be consistent, we still produce the transitional schema, not the strict one which would have the 'start' attribute. Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18fix(docx): fix validation error on inline w:i/w:iCs orderEdwin Török
From `make validate-docx-golden-tests2`: ``` { "FilePath": "test/docx/golden/definition_list.docx", "ValidationErrors": "[{\"Description\":\"The element has unexpected child element 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:i'.\",\"Path\":{\"NamespacesDefinitions\":[\"xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\"],\"Namespaces\":{},\"XPath\":\"/w:document[1]/w:body[1]/w:p[3]/w:r[3]/w:rPr[1]\",\"PartUri\":\"/word/document.xml\"},\"Id\":\"Sch_UnexpectedElementContentExpectingComplex\",\"ErrorType\":\"Schema\"}]" }, ``` Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18fix(docx): fix OOXMLValidator error on KeywordTok outputEdwin Török
xmllint doesn't warn about this (maybe because the tag is empty?), but the order doesn't match wml.xsd: ``` <w:rPr> <w:color w:val="007020"/> <w:b/> </w:rPr> ``` And OOXMLValidatorCLI does warn about it: ``` { "Description": "The element has unexpected child element 'http://schemas.openxmlformats.org/wordprocessingml/2006/main:b'.", "Path": { "NamespacesDefinitions": [ "xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\"" ], "Namespaces": { }, "XPath": "/w:styles[1]/w:style[40]/w:rPr[1]", "PartUri": "/word/styles.xml" }, "Id": "Sch_UnexpectedElementContentExpectingComplex", "ErrorType": "Schema" } ``` Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18fix(docx): fix validation error on w:annotationRefEdwin Török
annotationRef is not valid for `w:rPr`, only for `w:r` according to wml.xsd. See https://github.com/jgm/pandoc/issues/9269 Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18fix(docx): fix validation error in w:nsidEdwin Török
The length here seems to refer to length in bytes (so twice as long in hex): ``` ./tmp/numbering-pretty.xml:4: element nsid: Schemas validity error : Element '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}nsid', attribute '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}val': [facet 'length'] The value 'A990' has a length of '2'; this differs from the allowed length of '4'. ``` [This](https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.wordprocessing.nsid?view=openxml-2.8.1) also documents the longer values. Signed-off-by: Edwin Török <edwin@etorok.net>
2023-12-18Docx writer: fixed validation errors in tables.John MacFarlane
Closes #9266.
2023-12-18Docx writer: fix validation error.John MacFarlane
The elements in pPr in lists were not properly ordered. This doesn't seem to cause problems for Word, but it makes validation fail and may pose problems for other consumers of docx. Closes #9265.
2023-12-17Docx writer: ensure that elements in settings are ordered correctly.John MacFarlane
The elements must occur in a specific order. This was being messed up when integrating a custom reference.docx. Closes #9264.
2023-12-17Docx writer: don't emit empty rows.John MacFarlane
These (`<w:tr />`) seem to cause problems for word. Closes #9224.
2023-12-15Logging: add MakePDFWarning constructor to LogMessage.John MacFarlane
[API change] Use this to pass LaTeX warnings on to user as warnings.
2023-12-15Logging: add MakePDFInfo constructor to LogMessage.John MacFarlane
[API change] Use this with `report` in Text.Pandoc.PDF instead of manually writing to stderr.
2023-12-15PDF: Refactored PDF generation via LaTeX.John MacFarlane
2023-12-15Text.Pandoc.PDF: parse logs to determine whether additional runs needed.John MacFarlane
Previously we ran a fixed number of times. Closes #9255.
2023-12-14Typst writer: emit `;` after typst code...John MacFarlane
unless followed by space. Otherwise there's the potential that the typst code will swallow up a following character. Closes #9252.
2023-12-11Whitespace fix.John MacFarlane
2023-12-11Typst reader: don't include metadata from document element.John MacFarlane
The problem is that typst doesn't print this metadata; it is only used in PDF properties. The title, authors, and so on are represented in the typst document (and there is no standardized method like LaTeX's `\maketitle`). So if we parse this as metadata then converting a typst document will likely lead to a double title.
2023-12-10Typst reader: parse metadata from document element.John MacFarlane
2023-12-10Typst reader: add state fields for metadata.John MacFarlane
2023-12-10Typst reader: support sys.version.John MacFarlane
2023-12-10LaTeX writer: Add performance optimization to #9168.John MacFarlane
We only walk the tree to raise big notes if the document contains big notes (it is fast to check). The removes the slight performance penalty of #9168 for most documents.
2023-12-10LaTeX writer: fix bug with big footnotes inside emphasis (#9168)Hikaru Ibayashi
Closes #8982.
2023-12-09Typst writer: use quote for block quotes.John MacFarlane
Remove custom definitiion of blockquote in default template.
2023-12-09Typst reader: allow @refs to become citations...John MacFarlane
if there is no corresponding label in the document.
2023-12-09Typst reader: collapse adjacent cite elements.John MacFarlane
2023-12-09Typst reader: fix temporary regression in cite.John MacFarlane
2023-12-09Typst writer: handle supplements in cite.John MacFarlane
2023-12-08Typst reader: change cite (only one key allowed, a label).John MacFarlane
This is a typst 0.9 breaking change.
2023-12-08Typst reader: support quote element. (typst 0.9)John MacFarlane
2023-12-08Docx writer: Use different style for block quotes in notes.John MacFarlane
Using "Footnote Block Text" for the style name, so it can be given a different font size if footnotes are. Closes #9243.
2023-12-08Docx writer: allow embedded fonts to be used in reference.docx.John MacFarlane
Closes #6728.
2023-12-07Typst writer/template: support `--toc-depth` as in other writers.John MacFarlane
Closes #9242.
2023-12-06Revert "Use base64 instead of base64-bytestring."John MacFarlane
This reverts commit 6625e9655ed2bb0c4bd4dd91b5959a103deab1cb. base64 is currently buggy on 32-bit systems. Closes #9233.
2023-12-05Fine-tuning on alerts.John MacFarlane
Added a test to show that we can convert smoothly between gfm, rst, and asciidoc alerts.
2023-12-04Add `alerts` extension.John MacFarlane
This enables GitHub style markdown alerts as a commonmark extension. <https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts> This extension is now default for `gfm`. It can't be used with `markdown`, only with `commonmark` and variants.