summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2024-01-23add case for "variable" classGokul Rajiv
2024-01-22Use reference form (e.g. `@jones2000[p. 30]`) for citations.John MacFarlane
Previously we were using `#cite` and trying to put the supplement in brackets; but a bracketed supplement only works with the reference form.
2024-01-22Org writer: escape special lines in code blocksAlbert Krewinkel
Fixes: #9218
2024-01-20HTML writer: ensure that an alt attribute is added in EPUB output.John MacFarlane
This seems to be required by iBooks; even an empty alt attribute will satisfy it. Closes #9354.
2024-01-20LaTeX writer: create valid table even when table is empty.John MacFarlane
Closes #9350.
2024-01-18Markdown writer: fix output for pipe tables...John MacFarlane
...with a huge number of columns. Previously we got invalid pipe tables when the number of table columns exceeded the setting of `--columns`. Closes #9346.
2024-01-16DocBook reader: better handling of `<procedure>` and `<substeps>`.John MacFarlane
`<procedure>` now gets parsed as an ordered list, and `<substeps>` as a sublist. Closes #9341.
2024-01-16Add readMan to Text.Pandoc.Readers exportsGeorge Stagg
2024-01-06T.P.PDF: reliably detect when TOC has changed.John MacFarlane
Sometimes the TOC changes but there are no warnings: this happens when no labels are present. In this case we must rerun LaTeX. So we now take the sha1 hash of the TOC file and rerun LaTeX if it changes between runs. Closes #9295.
2024-01-05Typst reader: fix handling of `\overline`.John MacFarlane
Due to a typo, it was being incorrectly rendered as an `\underset`. Closes #9294.
2024-01-05T.P.PDF: increase max number of LaTeX runs to 4.John MacFarlane
On some documents, 4 runs are needed (e.g. when a LastPage reference is used). Closes #9299.
2024-01-05Whitespace cleanup.John MacFarlane
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.