diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-09-28 10:46:41 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-09-28 10:46:41 -0700 |
commit | e02a91313758b4ecb4d7f70f754deb113d74c0d6 (patch) | |
tree | 3c92ca72c15ceef202397c6c945da03e6671b43b /changelog | |
parent | 3b80a6adb4a7d585662772582b6c9719aa39d83b (diff) | |
download | pandoc-e02a91313758b4ecb4d7f70f754deb113d74c0d6.tar.gz |
Markdownify changelog -> changelog.md.
Diffstat (limited to 'changelog')
-rw-r--r-- | changelog | 17750 |
1 files changed, 0 insertions, 17750 deletions
diff --git a/changelog b/changelog deleted file mode 100644 index e22b924c0..000000000 --- a/changelog +++ /dev/null @@ -1,17750 +0,0 @@ -pandoc (2.8 PROVISIONAL) - - * Add `-L` option as shortcut for `--lua-filter`. - - * Add `--shift-heading-level-by` option and deprecate - `--base-heading-level` (#5615). The new option does - everything the old one does, but also allows negative shifts. - It also promotes the document metadata (if not null) to a - level-1 heading with a +1 shift, and demotes an initial - level-1 heading to document metadata with a -1 shift. This - supports converting documents that use an initial level-1 - heading for the document title. - - * Allow `--metadata-file` to be used repeatedly to include - multiple metadata files (Owen McGrath, #5702). Values in - files specified first will be used instead of those in later - files. - - * `--ascii` now uses numerical hex character references (#5718). - - * When `--ipynb-output` is used with the default "best" format, strip - ANSI escape codes for non-ipynb output (#5633). These cause problems - in many formats, including LaTeX. - - * Don't look for template files remotely for remote input (#5579). - Previously pandoc would look for the template at a remote URL when a - URL was used for the input file, instead of taking it from the - data directory. - - * Don't add a newline to fragment output if there's already one. - - * Change exit codes and document in MANUAL.txt: - - + `PandocAppError` was 1, is now 4 - + `PandocOptionError` was 2, is now 6 - + `PandocMakePDFError` was 65, is now 66 - - * RST reader: - - + Keep `name` property in `imgAttr` (Brian Leung, #5619). - + Fixed parsing of indented blocks (#5753). We were requiring - consistent indentation, but this isn't required by RST. - + Use title, not admonition-title, for admonition title. - This puts RST reader into alignment with docbook reader. - - * Org reader: - - + Accept `ATTR_LATEX` in block attributes (Albert Krewinkel, #5648). - Attributes for LaTeX output are accepted as valid block attributes; - however, their values are ignored. - + Modify handling of example blocks (Brian Leung, #5717). - + Allow the `-i` switch to ignore leading spaces (Brian Leung). - + Handle awkwardly-aligned code blocks within lists (Brian Leung). - Code blocks in Org lists must have their `#+BEGIN_` aligned in a - reasonable way, but their other components can be - positioned otherwise. - - * Muse reader: - - + Add RTL support (Alexander Krotov, #5551). - - * JIRA writer: - - + Remove escapeStringForJira for code blocks (Jan-Otto Kröpke). - - * Docx reader: - - + Move style-parsing-specific code to a new unexported module, - Text.Pandoc.Readers.Docx.Parse.Styles. - + Move StyleMap to docx writer. - - * Docbook reader: - - + Richer parse for admonitions (Michael Peyton Jones, #1234). - Instead of parsing admonitions as blockquotes, we now parse - them as Divs with an appropriate class. We also handle titles - for admonitions as a nested Div with the "title" class. - - * Markdown writer: - - + Ensure proper nesting when we have long ordered list markers (#5705). - + Make `plain` output plainer (#5741). Previously we used the following - Project Gutenberg conventions for plain output: extra space before and - after level 1 and 2 headings, all-caps for strong emphasis, - underscores surrounding regular emphasis. Now these - conventions are used only when the `gutenberg` extension is - enabled. By default, Strong and Emph are rendered without - special formatting, and headings are rendered without - special formatting, and with only one blank line following. - To restore the former behavior, use `-t plain+gutenberg`. - + Prefer using raw_attribute when enabled (#4311). - The `raw_attribute` will be used to mark raw bits, even HTML - and LaTeX, and even when `raw_html` and `raw_tex` are - enabled, as they are by default. To get the old behavior, - disable `raw_attribute` in the writer. - - * AsciiDoc writer: - - + Don't include `+` in code blocks for regular asciidoc. - This is asciidoctor-specific. - + Handle admonitions (#5690). - - * LaTeX writer: - - + Add thin space when needed in LaTeX quote ligatures (#5684). - + Use `\hspace{0pt}` for 0-width space U+200B (#5756). - + Use `cslreferences` environment for csl bibliographies. - This allows bibliographies to receive special formatting. - The template now contains definition of this environment (enabled - only when CSL is used). It also defines a `\cslhangindent` length. - This is set to 2em by default when the bibliography style specifies - a hanging indent. To override the length, you can use e.g. - `\setlength{\cslhangindent}{7em}` in header-includes. - See jgm/pandoc-citeproc#410. - + Strip off `{}` around locator for biblatex/natbib output (#5722). - + Fix line breaks at start of paragraph (#3324). - Previously we just omitted these. Now we render them - using `\hfill\break` instead of `\\`. This is a revision - of a PR by @sabine (#5591) who should be credited with the idea. - + We no longer look in the template or header-includes to see if a - book or article documentclass is used, or to see whether the - `csquotes` package is used. To use `csquotes` for LaTeX, set - `csquotes` in your variables or metadata. To specify a book - style, use the `documentclass` variable or - `--top-level-division`. - - * ConTeXt writer: - - + Add option to include source files in ConTeXt PDFs (Tristan - Stenner, #5578). The metadata field or variable - (`includesource`) can be set to attach the source documents - to the resulting PDF. - + Customizable type of PDF/A for the ConTeXt writer (Karl - Pettersson, #5608). The `pdfa` variable may now be set in metadata. - Also updated color profile settings in accordance with ConTeXt wiki, - and made ICC profile and output intent for PDF/A customizable - using `pdfaiccprofile` and `pdfaintent`. - + Unit tests: adjust code property to avoid an irrelevant - failure involving inline code with two consecutive newlines. - - * HTML writer: - - + Use numeric character references with `--ascii` (#5718). - Previously we used named character references with html5 output. - But these aren't valid XML, and we aim to produce html5 that is - also valid XHTML (polyglot markup). (This is also needed for epub3.) - + Ensure that line numbers in code blocks get id-prefix (#5650). - + Ensure TeX formulas are rendered correctly (Philip Pesca, - #5658). The web service passed in to `--webtex` may render - formulas using inline or display style by default. - Prefixing formulas with the appropriate command ensures - they are rendered correctly. - + Render inline formulas correctly with `--webtex` (Philip - Pesca, #5655). We add `\textstyle` to the beginning of the - formula to ensure it will be rendered in inline style. - + Pass through `aria-` attributes to HTML5 (#5642). - - * EPUB writer: - - + Improve splitting into chapters (#5761), using `makeSection`. - + Avoid issuing warning multiple times when title not set (see #5760). - + Use svg tag wrapper for cover image (#5638). In addition, the - code generating the image has been moved to the template, to make it - more customizable. NOTE: Those who use custom EPUB - templates will need to adjust their templates, adding the - code to generate the cover image. (Previously this was just - inserted into 'body'.) - + Improve toChapters, making it work better if there are Divs - around sections. - + Add support for EPUB2 covers (blmage, #3992). - + Do not override existing "fileN" medias when writing to EPUB format - (blmage, #4206). - - * RST writer: - - + Removed remnants of `admonition-title`. - - * Dokuwiki writer: - - + Handle mixed lists without HTML fallback (#5107). - - * XWiki writer: - - + Fix multiline table (Zihang Chen, #5683). - - * Muse writer: - - + Add RTL support (Alexander Krotov, #5551). - - * Man writer: - - + Suppress non-absolute link URLs (#5770). Absolute URLs are - still printed in parentheses following the link text, but relative - URLs are suppressed (just as internal links starting with '#' - always have been). - + Improved definition list term output. Now we boldface code but - not other things. This matches the most common style in man pages - (particularly option lists). - - * Ms writer: - - + Use `.LP` instead of `.PP` for line block (#5588). - - * JATS writer: - - + Do not emit empty `<fn-group>` (Mauro Bieg, #5595). - + Update template to v1.1dtd (#5632, Arfon Smith). - + Update `data/jats.csl` to avoid commas between editor - name-part elements. (#5629) - + Add `abstract` to template (Mauro Bieg). - - * OpenDocument writer: - - + Avoid duplicate attributes (#4634). We use the innermost - attribute in nested cases. - + If `native_numbering` extension is set, use native OpenDocument - enumeration for figures and tables (Nils Carlson). - - * ODT writer: - - + Add a test for MathML formulas in ODT documents (blmage). - + Improve the parsing of frames in ODT documents (blmage). - - * Docx writer: - - + Make handling of styles more robust in localized versions - of Word (Nikolay Yakimov, #5523, #5052, #5074). We now use - style names, not ids, for assigning semantic meaning, since - the ids can change depending on the locale. Style name - comparisons are case-insensitive, since those are - case-insensitive in Word. Since docx style names can have - spaces in them, and pandoc-markdown classes can't, anywhere - when style name is used as a class name, spaces are - replaced with ASCII dashes `-`. Code styles, i.e. "Source - Code" and "Verbatim Char" now honor style inheritance. Docx - Reader now honours "Compact" style (used in - Pandoc-generated docx). The side-effect is that "Compact" - style no longer shows up in docx+styles output. Styles - inherited from "Compact" will still show up. - + Re-use Readers.Docx.Parse for StyleMap (#5766, Nikolay Yakimov). - + Internal improvements and code simplification (Nikolay Yakimov). - + Preserve built-in styles in DOCX with custom style (Ben Steinberg, - #5670). This change prevents custom styles on divs and spans - from overriding styles on certain elements inside them, like - headings, blockquotes, and links. On those elements, the - "native" style is required for the element to display correctly. - This change also allows nesting of custom styles; in order to do so, - it removes the default "Compact" style applied to Plain blocks, - except when inside a table. - + Add `proofState` to list of elements carried over from - settings.xml in the reference.docx (Krystof Beuermann, #5703). - + Change order of `ilvl` and `numId` in `document.xml` (Agustín - Martín Barbero, #5645). Also, make list para properties go first. - This reordering of properties shouldn't be necessary but - it seems Word Online does not understand the docx correctly otherwise. - - * PowerPoint writer: - - + Code formatting is now context dependent (Jeroen de Haas, #5573). - This commit alters the way in which the Powerpoint writer treats - inline code and code blocks. Inline code is now formatted at - the same size as the surrounding text. Code blocks are now given - a margin and font size according to their level. - Furthermore this commit allows changing the font with which code is - formatted via the `monofont` option. - + Start numbering at appopriate numbers (Jesse Rosenthal, #5709). - Starting numbers for ordered lists were previously ignored. Now - we specify the number if it is something other than 1. - - * Text.Pandoc.Parsing: - - + Add `stateAllowLineBreaks` to `ParserState` [API change]. - + Fix inline parsing in grid table cells (#5708). - + Change type of `setLastStrPos` so it takes a `Maybe SourcePos` - rather than a `SourcePos` [API change]. - + Make `parseFromString'` and `gridTableWith` and - `gridTableWith'` polymorphic in the parser state, - constraining it with `HasLastStrPosition` [API change]. - + `parseFromString'`: reset `stateLastStrPos` to `Nothing` before parse. - - * Text.Pandoc.PDF: - - + For PDFs via HTML, ensure temp file is deleted even if the pdf - program is not found (#5720). - + Better detection of a Cygwin environment (#5451). - - * Text.Pandoc.Extensions: - - + Add `Ext_gutenberg` constructor to `Extension` [API change]. - + Add `Ext_native_numbering` constructor to `Extension` [API change] - (Nils Carlson). - - * Text.Pandoc.App - - + Change `optMetadataFile` type from `Maybe FilePath` to `[FilePath]` - (Owen McGrath, #5702) [API change]. - - * MediaWiki reader: - - + Skip optional `{{table}}` template (#5757). - - * Text.Pandoc.Logging: - - + Add `CouldNotDeduceFormat` constructor to `LogMessage` [API change]. - Issue this warning when we're falling back to markdown or - html because we don't recognize the extension of the input or - output files. - + Clarify warning for missing title (#5760). - + Add `UnusualConversion` constructor to `LogMessage` [API change] - (Mauro Bieg, #5736). Emit warning on `-f latex -o out.pdf`. - - * Lua filters: - - + Improve function documentation (Albert Krewkinkel). - + Traverse nested blocks and inlines in correct order (Albert - Krewinkel, #5667). Traversal methods are updated to use the new - Walk module so that sequences with nested Inline (or Block) elements - are traversed in the order in which they appear in the linearized - document. - + New unexported module `Text.Pandoc.Lua.Walk` (Albert Krewinkel). - Lua filters must be able to traverse sequences of AST - elements and to replace elements by splicing sequences back - in their place. Special `Walkable` instances can be used for - this; those are provided in a new module - `Text.Pandoc.Lua.Walk`. - + `Attr` values can now be given as normal Lua tables (Albert - Krewinkel, #5744). This can be used as a convenient alternative - to constructing `Attr` values with `pandoc.Attr`. Identifiers - are taken from the `id` field, classes must be given as - space separated words in the `class` field. All remaining fields - are included as attributes. With this change, the following lines - now create equal elements: - ``` - pandoc.Span('test', {id = 'test', class = 'a b', check = 1}) - pandoc.Span('test', pandoc.Attr('test', {'a','b'}, {check = 1})) - ``` - This also works when using the *attr* setter: - ``` - local span = pandoc.Span 'text' - span.attr = {id = 'test', class = 'a b', check = 1} - ``` - Furthermore, the *attributes* field of AST elements can now be a - plain key-value table even when using the `attributes` accessor: - ``` - local span = pandoc.Span 'test' - span.attributes = {check = 1} -- works as expected now - ``` - + Export `make_sections`, remove `hierarchicalize`. Lua filters that - use `hierarchicalize` will need to be rewritten to use - `make_sections`. - + Add a `clone()` method to all AST elements (Albert Krewinkel, #5568). - + Fix Lua function names in pandoc.system (niszet). Change - `get_current_directory` to `get_working_directory` and - `with_temp_directory` to `with_temporary_directory`, to - conform to the manual. - - * Text.Pandoc.Error: - - + Better message for `PandocShouldNeverHappenError`. - + Better message for `PandocTemplateError`. - - * Text.Pandoc.Emoji: - - + Update emoji list (#5666). Done using new `tools/emojis.hs`, - which uses the list from the gem GitHub uses. Future updates - can be done with this tool. - - * Text.Pandoc.PDF: - - + Pass value of `--dpi` to `rsvg-convert` when converting SVG to PDF - in the process of creating a PDF (#5721). - - * Markdown reader: - - + Headers: don't parse content over newline boundary (#5714). - + Handle inline code more eagerly within lists (Brian Leung, #5627). - + Removed some needless lookaheads. - - * LaTeX reader: - - + Fix parsing of optional arguments that contain braced text (#5740). - + Don't try to parse includes if `raw_tex` is set (#5673). - When the `raw_tex` extension is set, we just carry through - `\usepackage`, `\input`, etc. verbatim as raw LaTeX. - + Properly handle optional arguments for macros (#5682). - + Fix `\\` in `\parbox` inside a table cell (#5711). - + Improve `withRaw` so it can handle cases where the token string is - modified by a parser (e.g. accent when it only takes part of a Word - token) (#5686). This fixes a bug that caused the ends of - certain documents to be dropped. - + Handle `\passthrough` macro used by latex writer (#5659). - + Support tex `\tt` command (#5654). - + Search for image with list of extensions like latex does, if an - extension is not provided (#4933). - + Handle `\looseness` command values better (#4439). - + Add `mbox` and `hbox` handling (Vasily Alferov, #5586). - When `+raw_tex` is enabled, these are passed through literally. - Otherwise, they are handled in a way that emulates LaTeX's behavior. - + Properly handle `\providecommand` and `\provideenvironment` (#5635). - They are now ignored if the corresponding command or environment - is already defined. - + Support epigraph command in LaTeX Reader (oquechy, #3523). - + Ensure that expanded macros in raw LaTeX end with a space - if the original did (#4442). - + Treat `ly` environment from lilypond as verbatim (Urs Liska, #5671). - + Add `tikzcd` to list of special environments (Eigil Rischel). - This allows it to be processed by filters, in the same way that - one can do for `tikzpicture`. - - * Roff reader: - - + Better support for `while`. - + More improvements in parsing conditionals. - + Fix problem parsing comments before macro. - + Improve handling of groups. - + Better parsing of groups (#5410). We now allow groups - where the closing `\\}` isn't at the beginning of a line. - - * Text.Pandoc.Shared: - - + Replace `Element` and `makeHierarchical` with `makeSections`. - Now that we have Divs, we can use them to represent the - structure of sections, and we don't need a special Element type. - `makeSections` reorganizes a block list, adding Divs with class - `section` around sections, and adding numbering if needed. - This change also fixes some longstanding issues recognizing section - structure when the document contains Divs (#3057, see also #997). - + Remove `Element` type [API change] - + Remove `makeHierarchicalize` [API change] - + Add `makeSections` [API change] - + Export `deLink` [API change] - + Make `filterIpynbOutput` strip ANSI escapes from code in output - for non-ipynb formats, when the default "best" option is used with - `--ipynb-output` (#5633). - - * Text.Pandoc.Slides: recognize content in Divs when determining - slide level. - - * Text.Pandoc.SelfContained: - - + Omit content-type on type attribute for `<style>` (#5725). - It doesn't seem to be valid for HTML5, and as a result Chrome - ignores the style element. - - * Text.Pandoc.Pretty has been removed [API change]. - We now use the new external doclayout module instead. - - * Text.Pandoc.Writers.Shared: - - + Remove `metaToJSON`, `metaToJSON'` [API change]. - + Modify `addVariablesToContext`, `defField`, `setField`, `getField`, - `resetField` to work with Context rather than JSON values. [API change] - + Export new function `endsWithPlain` [API change]. - - * Text.Pandoc.Options - - + Change type of `writerTemplate` to `Maybe Template` instead - of `Maybe String`. - - * Text.Pandoc.XML: - - + Change `toEntities` to emit numerical hex character references - (#5718). - - * Text.Pandoc.Templates: - - + Don't import/export `varListToJSON` [API change]. It is removed in - doctemplates >= 0.3. - + Change type of `renderTemplate'` [API change]. Return value is - now Text rather than being polymorphic. This makes room for - upcoming removal of the `TemplateTarget` class from doctemplates. - - * Improvements in templates system (from doctemplates-0.6.1): - - + Pandoc templates now support a number of new features that - have been added in doctemplates: notably, partials and keywords - to control nesting and reflowing of text. - + We now used templates parameterized on doclayout Doc types. - The main impact of this change is better reflowing of content - interpolated into templates. Previously, interpolated variables - were rendered independently and intepolated as strings, - which could lead to overly long lines. Now the templates - interpolated as Doc values which may include breaking - spaces, and reflowing occurs after template interpolation - rather than before. - + Remove code from the LaTeX, Docbook, and JATS writers that - looked in the template for strings to determine whether it is a - book or an article, or whether csquotes is used. This was - always kludgy and unreliable. - + Change template code to use new API for doctemplates. - - * Template changes: - - + default.latex: added code for `cslreferences` environment, - to be used for pandoc-citeproc references. A `csl-hanging-indent` - variable (set automatically if there is a `hanging-ident` - class on the references Div) controls whether contents of this - environment receive a hanging indent. - + revealjs template: add navigationMode (Mauro Bieg, #5657). - + muse template: handle multiple authors better. - + docbook4, docbook5 templates: add indentation to body. - + HTML-based templates: use `styles.html` partial to avoid - code duplication. - + HTML-based templates: change indentation of styles in template. - - * epub.css: Add CSS for hanging-indent div to support pandoc-citeproc's - new hanging indents. - - * pandoc.cabal: - - + Repeat ghc-options in all stanzas. - + Remove conditionals for ghc < 8 (Albert Krewinkel, #5693). - + Compile with `-Wcpp-undef` and `-fhide-source-paths` when possible - (Albert Krewinkel). - + Add cabal.project to extra-source-files (Albert Krewinkel). - + Add dependency on skylighting-core (#5729). Even though it shouldn't - be needed, some tools require it. - + Require latest pandoc-types, texmath, skylighting. - + Ensure TemplateHaskell is added to other-extensions when it is - used (Vanessa McHale, #5728). - - * Makefile: - - + Add ghci target. - + Add ghcid target. - + Remove references to obsolete flag (#5694). - - * Benchmarks: fix failure on ipynb. - - * Fix redundant constraint compiler warnings (Pete Ryland, #5625). - - * Add `diff-zip.sh` to tools (John MacFarlane, Agustín Martín Barbero). - This is intended to make it easier to test differences in zip - containers, like epub, docx, or odt. - - * Add `.gitattributes` (#5747). This ensures that the golden files - in `test/fb2/reader/` don't have newlines converted. This should fix - a test failure on GitHub CI with Windows. - - * Revise code for HsYAML-0.2.0.0 (@vijayphoenix, #5704). - - * Remove blank line in code example in Haddocks (Leif Metcalf, #5679). - - * MANUAL.txt: - - + Add section for exit codes. - + Document some pptx limitations in slide show section: - No incremental display (#5689). No pause with `. . .` (#5701). - + reveal.js flags (Mauro Bieg, #5653). - + Document addition of `data-` prefix to unknown attributes in HTML5. - + Link to YAML spec (Mauro Bieg, #5687). - - * INSTALL.md: fix instructions for libicu. - - * CONTRIBUTING.md: add information on tests (Agustín Martín - Barbero, #5652). - - -pandoc (2.7.3) - - * Add `jira` (Atlassian's Jira wiki markup) as output format (#2497, - Albert Krewinkel). - - * Add `tex_math_dollars` to `multimarkdownExtensions` (#5512). - This form is now supported in multimarkdown, - in addition to `tex_math_double_backslash`. - - * Fix `--self-contained` so it works when output format has extensions. - Previously if you used `--self-contained` with `html-smart` or - `html+smart`, it wouldn't work. - - * Add template variable `curdir` with working directory - from which pandoc is run (#5464). - - * Markdown reader: don't create implicit reference for empty header - (#5549). - - * Muse reader: allow images inside link descriptions (Alexander Krotov). - - * HTML reader: epub related fixes. - - + With epub extensions, check for `epub:type` in addition to `type`. - + Fix problem with noteref parsing which caused block-level - content to be eaten with the noteref. - + Rename `pAnyTag` to `pAny`. - + Refactor note resolution. - + Trim definition list terms (Alexander Krotov). - - * LaTeX reader: - - + Add braces when resolving `\DeclareMathOperator` - (#5441). These seem to be needed for xelatex but not pdflatex. - + Allow newlines in `\mintinline`. - + Pass through unknown listings language as class (#5540). - Previously if the language was not in the list of languages supported - by listings, it would not be added as a class, so highlighting - would not be triggered. - + `rawLaTeXInline`: Include trailing `{}`s in raw latex commands (#5439). - This change affects the markdown reader and other readers that allow raw - LaTeX. Previously, trailing `{}` would be included for unknown - commands, but not for known commands. However, they are sometimes used - to avoid a trailing space after the command. The chances that a `{}` - after a LaTeX command is not part of the command are very small. - - * MediaWiki reader: handle multiple attributes in table row (#5471, - chinapedia). - - * Docx reader: Add support for `w:rtl` (#5545). Elements with this - property are put into Span inlines with `dir="rtl"`. - - * DocBook reader: Issue `IgnoredElement` warnings. - - * Org reader (Albert Krewinkel): - - + Fix planning elements in headers level 3 and higher - (#5494). Planning info is now always placed before - the subtree contents. Previously, the planning info was placed after - the content if the header's subtree was converted to a list, which - happens with headers of level 3 and higher per default. - + Omit, but warn about unknown export options. Unknown export - options are properly ignored and omitted from the output. - + Prefer plain symbols over math symbols (#5483). - Symbols like `\alpha` are output plain and unemphasized, not as math. - + Recognize emphasis after TODO/DONE keyword (#5484). - - * FB2 reader: - - + Skip unknown elements rather than throwing errors (#5560). - Sometimes custom elements are used (e.g. `id` element - inside `author`); previously the reader would halt with an error. - Now it skips the element and issues an `IgnoredElement` warning. - + Parse notes (#5493, Alexander Krotov). - + Internal improvements (Alexander Krotov). - - * OpenDocument writer: Roll back automatic figure/table numbering - (#5474). This was added in pandoc 2.7.2, but it makes it impossible - to use pandoc-crossref. So this has been rolled back for now, - until we find a good solution to make this behavior optional - (or a creative way to let pandoc-crossref and this feature - to coexist). - - * New module Text.Pandoc.Writers.Jira, exporting `writeJira` [API - change] (Albert Krewinkel). - - * EPUB writer: - - + Don't include 'landmarks' if there aren't any. - Previously we could get an empty ol element, which caused - validation errors with epubcheck. - + Ensure unique ids for styleesheets in content.opf (#5463). - + Make stylesheet link compatible with kindlegen (#5466, - Eric Schrijver). Pandoc omitted `type="text/css"` from both - `<style>` and `<rel="stylesheet">` elements in all templates, which - is valid according to the spec. However, Amazon’s kindlegen software - relies on this attribute on `<link>` elements when detecting - stylesheets to include. - - * HTML writer: - - + Output video and audio elements depending on file - extension of the image path (Mauro Bieg). - + Emit empty alt tag in figures (#5518, Mauro Bieg). - The same text is already in the <figcaption> and - screen-readers would read it twice, see #4737. - + Don't add variation selector if it's already there. - This fixes round-trip failures. - + Prevent gratuitious emojification on iOS (#5469). - iOS chooses to render a number of Unicode entities, including '↩', as - big colorful emoji. This can be defeated by appending Unicode VARIATION - SELECTOR-15'/'VARIATION SELECTOR-16'. So we now append this character - when escaping strings, for both '↩' and '↔'. If other characters prove - problematic, they can simply be added to `needsVariationSelector`. - + Add `class="heading"` to level 7+ Headers rendered as `<p>` elements - (#5457). - - * RST writer: treat Span with no attributes as transparent (#5446). - Previously an Emph inside a Span was being treated as - nested markup and ignored. With this patch, the Span - is just ignored. - - * LaTeX writer: - - + Include inline code attributes with `--listings` (#5420). - + Don't produce columns environment unless beamer (#5485). - + Fix footnote in image caption. Regression: the fix for #4683 broke - this case. - + Don't highlight code in headings (#5574). This causes - compilation errors. - + Use `\mbox` to get proper behavior inside `\sout` (#5529). - - * EPUB writer: Fix document section assignments (#5546). - For example, introduction should go in bodymatter, not frontmatter, and - epigraph, conclusion, and afterward should go in bodymatter, not - backmatter. For the full list of assignments, see the manual. - - * Markdown writer: - - + Add backslashes to avoid unwanted interpretation of - definition list terms as other kinds of block (#554). - + Ensure the code fence is long enough (#5519). - Previously too few backticks were used when the code block - contained an indented line of backticks. (Ditto tildes.) - + Handle labels with integer names (Jesse Rosenthal, #5495). - Previously if labels had integer names, it could produce a conflict - with auto-labeled reference links. Now we test for a conflict and - find the next available integer. This involves adding a new state - variable `stPrevRefs` to keep track of refs used in other document - parts when using `--reference-location=block|section` - - * Textile writer: fix closing tag for math output (Albert Krewinkel). - Opening and closing tag for math output match now. - - * Org writer: always indent src blocks content by 2 spaces (#5440, Albert - Krewinkel). Emacs always uses two spaces when indenting the content of - src blocks, e.g., when exiting a `C-c '` edit-buffer. Pandoc used to - indent contents by the space-equivalent of one tab, but now always uses - two spaces, too. - - * Asciidoc writer: - - + Use `` `+...+` `` form for inline code. - The old `` `a__b__c` `` yields emphasis inside code in asciidoc. - To get a pure literal code span, use `` `+a__b__c+` ``. - + Use proper smart quotes with asciidoctor (#5487). - Asciidoctor has a different format for smart quotes. - + Use doubled ## when necessary for spans (#5566). - + Ensure correct nesting of strong/emph (#5565): strong - must be the outer element. - - * JATS writer: - - + Wrap elements with p when needed (#5570). The JATS spec restricts - what elements can go inside `fn` and `list-item`. So we wrap other - elements inside `<p specific-use="wrapper">` when needed. - + Properly handle footnotes (#5511) according to "best practice." - (Group them at the end in `<fn-group>` and use `<xref>` elements - to link them.) - + Fix citations with PMID so they validate (#5481). This includes - an update to data/jats.csl. - + Ensure validity of `<pub-date>` by parsing the date and - extracting year, month, and day, as expected. Also add an - iso-8601-date attribute automatically. - + Don't use `<break>` element for LineBreak. It is only - allowed in a few special contexts, and not in `<p>` elements. - + Don't make `<string-name>` a child of `<string>`, which is illegal. - - * FB2 writer: - - + Do not wrap note references into `<sup>` and brackets - (Alexander Krotov). Existing FB2 readers, such as FBReader, already - display links with type="note" as a superscript. - + Use genre metadata field (#5478). - - * Muse writer: do not escape empty line after `<br>` (Alexander Krotov). - - * Add unicode code point in "Missing character" warning (#5538). - If the character isn't in the console font, the message is pretty useless, - so we show the code point for anything non-ASCII. - - * Lua: add Version type to simplify comparisons (Albert Krewinkel). - Version specifiers like `PANDOC_VERSION` and `PANDOC_API_VERSION` are - turned into `Version` objects. The objects simplify version-appropriate - comparisons while maintaining backward-compatibility. - A function `pandoc.types.Version` is added as part of the newly - introduced module `pandoc.types`, allowing users to create version - objects in scripts. - - * pandoc lua module (Albert Krewinkel): - - - Fix deletion of nonexistent attributes (#5569). - - Better tests for Attr and AttributeList. - - * pandoc.mediabag lua module (Albert Krewinkel): - - + Add function `delete` for deleting a single item. - + Add function `empty` for removing all entries. - + Add function `items` for iterating over mediabag. - - * Text.Pandoc.Class: Fix handling of `file:` URL scheme in - `downloadOrRead` (#5517, Mauro Bieg). Previously `file:/` - URLs were handled wrongly and pandoc attempted to make HTTP - requests, which failed. - - * Text.Pandoc.MIME: add `mediaCategory` [API change] (Mauro Bieg). - - * Text.Pandoc.Shared: - - + Add `onlySimpleTableCells` [API change] - (Mauro Bieg) and use this to consolidate simple-table detection - (#5524). This fixes an inconsistency in the HTML reader, which did not - treat tables with `<p>` inside cells as simple. - + `metaToJSON`: treat digits starting with 0 as a string, not a number - (#5479). This fixes a regression in YAML metadata in pandoc 2.7.2. - - * Text.Pandoc.Logging: Add `IgnoredElement` constructor for - `LogMessage`. `SkippedConetnt` doesn't work for some XML-based - readers which don't have access to parsec source positions. - - * Text.Pandoc.Asciify: Add Turkish undotted-i (#5433, Mauro Bieg). - - * Improve output of Lua tests (#5499, Albert Krewinkel). - This makes use of tasty-lua, a package to write tests in Lua - and integrate the results into Tasty output. Test output becomes - more informative: individual tests and test groups become visible - in test output. Failures are reported with helpful error messages. - - * Lua: add `pandoc.system` module (#5468, Albert Krewinkel). - The `system` Lua module provides utility functions to interact with the - operating- and file system. E.g. - `print(pandoc.system.get_current_directory())` - or - ```lua - pandoc.system.with_temporary_directory('tikz', function (dir) - -- write and compile a TikZ file with pdflatex - end) - ``` - - * LaTeX template: Add pdflang to hypersetup if lang is set (#5443). - - * beamer template: Fix using Beamer with geometry (#5505, Daniel Maslowski). - Beamer already loads geometry, so we need to use the `\geometry` - command to set geometry options. - - * EPUB2/3 templates: Move inline styles to default epub.css (#5466). - NOTE: Those who use a custom CSS stylesheet with EPUB should - add these lines: - - code{ white-space: pre-wrap; } - span.smallcaps{ font-variant: small-caps; } - span.underline{ text-decoration: underline; } - q { quotes: "“" "”" "‘" "’"; } - div.column{ display: inline-block; vertical-align: top; width: 50%; } - - * reveal.js template: - - + Updates for revealjs 3.8.0 (#5435, ebiim). - + Remove reference to head.min.js (#5448, Winnie Hellmann). - NOTE: users will need to update reveal.js to at least 3.8.0 - for their presentations generated with this version of pandoc - to work correctly. - - * Text.Pandoc.PDF: - - + Replace `</>` with literal `/` (#5451). - We use forward-slash for a directory separator in tmpDir, - even on Windows (because that's what tex likes). So we - should not put a backslash between the tmpDir and the - filename on Windows. This is harmless enough in normal - Windows setups, but it breaks on Cygwin. - Thanks to @cc2x for noticing and diagnosing the problem. - + Allow use of `-output-directory` in `--pdf-engine-opt` (#5462). - This is currently possible with `mklatex` and `-outdir`, but - was not yet possible with xelatex and `-output-directory`. - + For PDF via ms/pdfroff, make TOC appear at beginning and in - PDF bookmarks (#5553). Previously the TOC appeared at the end - of the document, and was not bookmarked. To keep it at the end, - add `--pdf-engine-opt=--no-toc-relocation` to your command line. - - * Fix broken links in documents (#5473, Shim Myeongseob). - Also, use absolute links to pandoc.org when possible, so that - the links can be followed by people viewing these documents - on GitHub. - - * Improved sample lua tikz filter in lua-filters docs (#5445, - Matthew Doty). There are three changes: - - + It only processes elements which begin with `\begin{tikzpicture}` - + It uses pdf2svg instead of imagemagick to preserve fidelity - + The images produced have transparent backgrounds - - * MANUAL.txt: - - + Add note about `title-meta`, `author-meta`, `date-meta` (#5486). - + Fix typo (#5489, Christian Krause). - - * add test/tables.xwiki to git and pandoc.cabal (#5498, Mauro Bieg). - - * Disable missing-home-modules warning in `stack.yaml`. - Otherwise `stack ghci` fails. - - -pandoc (2.7.2) - - * Add XWiki writer (#1800, Derek Chen-Becker). - Add `Text.Pandoc.Writers.XWiki`, exporting `writeXWiki` [API change]. - - * Dokuwiki Reader: parse single curly brace (#5416, Mauro Bieg). - - * Vimwiki reader: improve handling of internal links (#5414). - We no longer append `.html` to link targets, and we add a title - `wikilink`. This mirrors behavior of other wiki readers. Generally - the `.html` extension is not wanted. It may be important for output - to HTML in certain circumstances, but it can always be added using a - filter that matches on links with title `wikilink`. - - If your workflow requires the current behavior, here is a lua filter - that will add the `.html` extension: - - ```lua - function Link(el) - if el.title == 'wikilink' then - el.target = el.target .. ".html" - end - return el - end - ``` - * ipynb reader: - - + Use format `ipynb` for raw cell where no format given. - + Avoid introducing spurious `.0` on integers in metadata. - - * Markdown reader: fenced div takes priority over setext header. - - * HTML reader: read `data-foo` attribute into `foo` (#5392). - The HTML writer adds the `data-` prefix for HTML5 for nonstandard - attributes. But the attributes are represented in the AST without - the `data-` prefix, so we should strip this when reading HTML. - - * LaTeX reader: Improve autolink detection (#5340). - - * PowerPoint writer (Jesse Rosenthal): - - + Expand builtin reference doc to model all layouts. - The previous built-in reference doc had only title and content - layouts. Add in a section-header slide and a two-content slide, so - users can more easily modify it to build their own templates. - + Always open up in slide view. When editing a - template/reference-doc, the user might be in Master view, but when - producing a slide show, it is assumed that slide view will be - desired. - + Remove `handoutsMasterList` from template presentation.xml - + Fix numerous errors in templating (#5402). Previously, some templates - produced by Office 365 (MacOS) would not render with `--reference-doc` - correctly. We now apply correct shapes for content, and build - shape trees correctly. - + Make default placeholder type for template lookup. - + Apply speaker notes to metadata slide if applicable. - + Test for speaker notes after breaking header. - + Correctly handle notes after section-title header. - Previously, if notes came after a section-title header (ie, a level-1 - header in a slide-level=2 presentation), they would go on the next - slide. This keeps them on the slide with the header. - + Internal improvements. - - * ipynb writer: - - + Use format `ipynb` for raw cell where no format given. - According to nbformat docs, this is supposed to render in every - format. We don't do that, but we at least preserve it as a raw - block in markdown, so you can round-trip. - + Consolidate adjacent raw blocks. Sometimes pandoc creates two - HTML blocks, e.g. one for the open tag and one for a close tag. - If these aren't consolidated, only one will show up in output cell. - + Fixed carry-over of nbformat from metadata. - + Preserve `nbformat_minor` if it's given. This helps with round-tripping. - - * LaTeX writer: - - + Avoid inadvertently creating ?` or !` ligatures (#5407). - These are upside down ? and !, resp. - + Fix footnotes in table caption and cells (#5367). This fixes a - bug wherein footnotes appeared in the wrong order, and with - duplicate numbers, when in table captions and cells. - We now use regular `\footnote` commands, even in the table - caption and the minipages containing cells. Apparently - longtable knows how to handle this. - - * HTML writer: Don't add data- prefix to RDFa attributes (#5403). - - * JATS writer: Ensure that plain strings go inside `<pub-id>` tag (#5397). - - * Markdown writer: - - + Better rendering of numbers (#5398). If the number is integral, - we render it as an integral not a float. - + Proper rendering of empty map in YAML metadata (#5398). Should - be `{}`, not empty string. - + Properly escape attributes in Markdown writer (#5369). - + Be sure implicit figures work in list contexts (#5368). - Previously they would sometimes not work: e.g., when they - occured in final paragraphs in lists that were originally - parsed as Plain and converted later using PlainToPara. - - * Docx writer: Use `w:br` without attributes for line breaks (#5377). - We previously added the attribute `type="textWrapping"`, but - this causes problems on Word Online. - - * LaTeX template (Andrew Dunning): - - + Ensure correct heading/table order (#5365). Improve workaround - (#1658) for tables following headings. The new solution works whether - or not the `indent` variable is enabled. - + Remove `subparagraph` variable. The default is now to use run-in - style for level 4 and 5 headings (`\paragraph` and `\subparagraph`). - To get the previous default behavior (where these were formatted as - blocks, like `\subsubsection`), set the `block-headings` variable. - + Add pandoc to PDF metadata (#5388). - + Group graphics-related code (#5389). - + Move `\setstretch` after front matter (#5179). Ensures that - `\maketitle`, `\tableofcontents`, and so forth are not affected by - changes to line spacing. - - * Update data/jats.csl to avoid commas between name-part elements - (#5397). - - * Add support for golang (`go`) with `--listings` (#5427). - - * Text.Pandoc.Shared - improve `metaToJSON` behavior with numbers. - We now do a better job marshalling numbers from MetaString - or MetaInlines into JSON Number. - - * Text.Pandoc.Writers.Shared: `metaValueToJSON`: use Number Values for - integers. Pandoc's MetaValue doesn't have a distinguished number type, - so numbers are put in MetaStrings. If the MetaString consists - entirely of digits, we convert it to a Number. We should probably - consider adding a MetaNumber constructor to MetaValue, for better - round-tripping with JSON etc. This change aids round-tripping in - ipynb metadata fields, like `toc_depth`. - - * Text.Pandoc.Class: `fetchItem`: don't treat UNC paths as - protocol-relative URLs (#5127). These are paths beginning `//?/UNC/...`. - - * Text.Pandoc.ImageSize: Improve `pdfSize` so it handles - a wider range of PDFs (#4322, with help from Richard Davis). - - * Text.Pandoc.Pretty: avoid stack overflow by using strict sum (#5401). - - * Fix harmless error in file-scope code (#5422). - - * MANUAL.txt: - - + Improve 'header' and 'heading' usage (#5423, Andrew - Dunning). The term 'header' was being used where 'heading' - is more appropriate. - + Add paragraph on options affecting markdown in ipynb. - - * stack.yaml - remove -Wmissing-home-modules - This seems to cause problems with stack ghci. Remove RTS options. - - * Add ghc-options to cabal.project. - - * appveyor.yml - use ghc 8.6.4. Fixes segfault issues on Windows (#5037). - - * linux build process: Remove clone of pandoc-citeproc (#5366). - It wasn't being used; cabal.project specifies the version to use. - -pandoc (2.7.1) - - * Add tectonic as an option for --pdf-engine (#5345, Cormac Relf). - Runs tectonic on STDIN instead of a temporary .tex file, so that it - looks in the working directory for `\include` and `\input` like the rest - of the engines. Allows overriding the output directory - args with `--pdf-engine-opt=--outdir --pdf-engine-opt="$DIR"`. - - * Allow `-o/--output` to be used with `--print-default-data-file`, - `--print-highlighting-style`, `--print-default-template`. - Note that `-o` must occur BEFORE the `--print*` command on the command - line (this is documented, #5357). - - * LaTeX reader: - - + Support `\underline`, `\ul`, `\uline` (#5359, Paul - Tilley). These are parsed as a Span with class `underline`, as - with other readers. - + Ensure that `\Footcite` and `\Footcites` get put in a note. - - * ipynb reader: - - + Remove sensitivity to `raw_html`, `raw_tex` extensions. - We now include every output format. Pruning is handled by - `--ipynb-output`. - + Better handling of cell metadata. We now include even complex cell - metadata in the Div's attributes (as JSON, in complex cases, or - as plain strings in simple cases). - - * ipynb writer: - - + Recurse into native divs for output cell data (#5354). - + Render cell metadata fields from div attributes. - - * Docx writer: avoid extra copy of abstractNum and num elements - in numbering.xml. This caused pandoc-produced docx files to - be uneditable using Word Online (#5358). - - * Markdown writer: improve handling of raw blocks/inline. - We now emit raw content using `raw_attribute` when no more - direct method is available. Use of `raw_attribute` can be - forced by disabling `raw_html` and `raw_tex`. - - * LaTeX writer: Add classes for frontmatter support (#5353, Andrew Dunning) - and remove frontmatter from `scrreprt`. - - * LaTeX template: - - + Improve readability (#5363, Andrew Dunning). - + Robust section numbering removal (#5351, Andrew Dunning). - Ensures that section numbering does not reappear with custom - section levels. See <https://tex.stackexchange.com/questions/473653/>. - + Better handling of front/main/backmatter (#5348). - In pandoc 2.7 we assumed that every class with chapters would accept - `\frontmatter`, `\mainmatter`, and `\backmatter`. This is not so (e.g. - report does not). So pandoc 2.7 breaks on report class by including an - unsupported command. Instead of the `book-class` variable, we use two - variables, `has-chapters` and `has-frontmatter`, and set these - intelligently in the writer. - - * Text.Pandoc.Shared: Improve `filterIpynbOutput`. Ensure that - images are prioritized over text. `best` should include everything - for ipynb. - - * Tests.Old: specify `--data-dir=../data` to ensure tests can find - data files even if they haven't been installed. Remove old - `pandoc_datadir` environment variable, which hasn't done anything for a - long time. - - * MANUAL.txt: Add recommendation to use `raw_attribute` with ipynb (#5354). - - * Use cmark-gfm-hs 0.1.8 (note that 0.1.7 is buggy). - - * Use latest pandoc-citeproc, texmath. - - -pandoc (2.7) - - * Use XDG data directory for user data directory (#3582). Instead of - `$HOME/.pandoc`, the default user data directory is now - `$XDG_DATA_HOME/pandoc`, where `XDG_DATA_HOME` defaults to - `$HOME/.local/share` but can be overridden by setting the - environment variable. If this directory is missing, then - `$HOME/.pandoc` is searched instead, for backwards compatibility. - However, we recommend moving local pandoc data files from - `$HOME/.pandoc` to `$HOME/.local/share/pandoc`. On Windows the - default user data directory remains the same. - - * Slide show formats behavior change: content under headers - less than slide level is no longer ignored, but included in - the title slide (for HTML slide shows) or in a slide after - the title slide (for beamer). This change makes possible - 2D reveal.js slideshows with content in the top slide on - each stack (#4317, #5237). - - * Add command line option `--ipynb-output=all|none|best` (#5339). - Output cells in ipynb notebooks often contain several different - versions of an output, with different MIME types, e.g. an HTML - table and a plain-text fallback. Specifying `--ipynb-output=best` - (the default) ensures that the best version for the output format - is used. `all` includes all versions, and `none` suppresses them - all, leaving output cells empty. - - * `asciidoctor` is now an output format separate from `asciidoc`, - to accommodate some minor implementation-specific differences - (currently just in the treatment of display math). - - * Add `latexmk` as an option for `--pdf-engine` (#3195). - Note that you can use `--pdf-engine-opt=-outdir=bar` to specify - a persistent temp directory. - - * Markdown reader: - - + Improve tight/loose list handling (#5285). Previously the - algorithm allowed list items with a mix of Para and Plain, which - is never wanted. - + Add newline when parsing blocks in YAML (#5271). Otherwise last - block gets parsed as a Plain rather than a Para. This is a - regression in pandoc 2.x. This patch restores pandoc 1.19 - behavior. - + Make `yamlToMeta` respect extensions (#5272, Mauro Bieg). - This adds a `ReaderOptions` parameter to `yamlToMeta` [API change]. - + Fix bug parsing fenced code blocks (#5304). Previously parsing - would break if the code block contained a string of backticks of - sufficient length followed by something other than end of line. - - * LaTeX reader: don't let `\egroup` match `{`. `braced` now actually - requires nested braces. Otherwise some legitimate command and - environment definitions can break. - - * Docx reader (Jesse Rosenthal): - - + Rename `getDocumentPath` as `getDocumentXmlPath`. - + Use field notation for setting `ReaderEnv`. - + Figure out `document.xml` path once at the beginning of parsing, and - add it to the environment, so we can avoid repeated lookups. - + Dynamically determine main document xml path (#5277). - The desktop Word program places the main document file in - `word/document.xml`, but the online word places it in - `word/document2.xml`. This file path is actually stated in the root - `_rels/.rels` file, in the `Relationship` element with an - `http://../officedocument` type. - + Fix paths in archive to prevent Windows failure (#5277). - Some paths in archives are absolute (have an opening slash) which, for - reasons unknown, produces a failure in the test suite on MS - Windows. This fixes that by removing the leading slash if it exists. - + Add comments to aid code readability. - + Trim space inside the last inline (#5273). - + Unwrap sdt elements in footnotes and comments (#5302). - - * Muse reader (Alexander Krotov): - - + Test that block level markup does not break `<verbatim>`. - + Add secondary note support. - - * ipynb reader: handle images referring to attachments. Previously - we didn't strip off the attachment: prefix, so even though the - attachment was available in the mediabag, pandoc couldn't find it. - - * JATS reader: - - + Fix parsing of figures (#5321). This ensures that a figure - containing a single image is parsed as a pandoc "implicit - figure" (i.e., a Para with a single Image whose title attribute - begins with `fig:`). More complex figures will still be parsed - as divs. - + Support `fig-group` block element (#5317). - + Handle citations with multiple references (#5310). The `rid` - attribute can have a space-separated list of ids. - - * AsciiDoc Writer: Add `writeAsciiDoctor` [API change, Tarik Graba]. - Handle display math appropriately for Asciidoctor. - - * JATS writer: wrap figure caption in `<p>` to fix validation (#5290, - Mauro Bieg). - - * HTML writer: - - + Implement WAI-ARIA roles for (end)notes, citations, and - bibliography (#4213). Note that doc-biblioref is only used when - link-citations produces links, since it belongs on links. - + Include content (including speaker notes) in title slides - (#4317, #5237). - - * ipynb writer: - - + Ensure final newline. - + Only include metadata under `jupyter` field. - + Don't create attachments for images with absolute URIs, - including data: URIs (#5303). - + Keep plain text fallbacks in output even if a richer format is - included (#5293). We don't know what output format will be needed. - See the `--ipynb-output` command line option for a way to control - what formats are included in the output. - - * Markdown writer: use `markdown="1"` when appropriate for Divs: - when `native_divs` and `markdown_in_html_blocks` are disabled - but `raw_html` and `markdown_attribute` are enabled. - - * LaTeX writer: - - + Use right fold for `escapeString`. This is more elegant than - the explicit recursive code we were using. - + Avoid `{}` after control sequences when escaping. - `\ldots{}.` doesn't behave as well as `\ldots.` with the latex - ellipsis package. This patch causes pandoc to avoid emitting - the `{}` when it is not necessary. Now `\ldots` and other - control sequences used in escaping will be followed by either - a `{}`, a space, or nothing, depending on context. - + For beamer, include contents under headers superordinate to - slidelevel (#4317). Currently we keep the fancy title slide, and - add a new slide with the same title and whatever content was - under the header. - - * Powerpoint writer (Jesse Rosenthal): support underlines. - Use span with single class "underline" as in docx writer. - - * Muse writer: escape secondary notes (Alexander Krotov). - - * FB2 writer: add section identifiers support (#5229, John KetzerX). - - * Make `--fail-if-warnings` work for PDF output (#5343). - - * Lua filters (Albert Krewinkel): - - + Load module `pandoc` before calling `init.lua` (#5287). The file - `init.lua` in pandoc's data directory is run as part of pandoc's - Lua initialization process. Previously, the `pandoc` module was - loaded in `init.lua`, and the structure for marshaling was - set up after. This allowed simple patching of element - marshaling, but made using `init.lua` more difficult. Now, all - required modules are now loaded before calling `init.lua`. The - file can be used entirely for user customization. Patching - marshaling functions, while discouraged, is still possible via - the `debug` module. - + All Lua modules bundled with pandoc, i.e., `pandoc.List`, - `pandoc.mediabag`, `pandoc.utils`, and `text` are re-exported from the - `pandoc` module. They are assigned to the fields `List`, `mediabag`, - `utils`, and `text`, respectively. - - * Text.Pandoc.Lua (Albert Krewinkel): - - + Split `StackInstances` into smaller Marshaling modules. - + Get `CommonState` from Lua global. This allows more control over - the common state from within Lua scripts. - - * LaTeX template: - - + Support the `subject` metadata variable (#5289, Pascal Wagler). - + Add `\frontmatter`, `\mainmatter`, `\backmatter` - for book classes (#5306). - - * epub3 template: Add titlepage class to section (#5269). - - * HTML5 template: Add ARIA role `doc-toc` for table of contents (#4213). - - * Make `--metadata-file` use selected extensions (#5279, #5272, Mauro Bieg). - - * Text.Pandoc.Shared: - - + Remove `withTempDir` [API change]. - + Add new exported function `defaultUserDataDirs` [API change]. - + Add `filterIpynbOutput` [API change]. - + `compactify`: Avoid lists with a mix of Plain and Para elements - (#5285). - - * Text.Pandoc.Translations: reorder alphabetically and remove `Author` - (#5334, Mauro Bieg). - - * Text.Pandoc.Extensions: - - + More carefully groom ipynb default extensions. - + Add `all_symbols_escapable` to `githubMarkdownExtensions`. - - * Text.Pandoc.PDF: - - + Use system temp directory when possible (#1192). Previously we - created temp dirs in the working directory, partly (a) because - there were problems using the system temp directory on Windows, - when their pathnames included tildes, and partly (b) because - programs like `epstopdf.pl` would not be allowed to write to - directories outside the working directory in restricted mode. We - now (a) use the system temp dir except when the path includes - tildes, and (b) set `TEXMFOUTPUT` when creating the PDF, so that - subsidiary programs can use the system temp directory. This - addresses problems that occurred when pandoc was used in a - synced directory (such as Dropbox). - + Change types of subsidiary functions to PandocIO, to allow - warnings to be threaded through (#5343). - - * Text.Pandoc.MIME: add WebP (#5267, Mauro Bieg). - - * Tests: avoid calling `findPandoc` multiple times. - - * Old tests: remove need for temp files by using `pipeProcess`. - - * Added simple ipynb reader/writer tests (#5274). - - * Rearrange `--help` output in a more rational way, with common - options at the beginning and options grouped by function (#5336). - - * trypandoc: Add JATS and other missing formats (Arfon Smith, #5291). - - * Add missing copyright notices and remove license boilerplate (#4592, - Albert Krewinkel). - - * Use latest basement/foundation on 32bit windows. - - * Use latest skylighting (#5328). Custom syntax definitions no - longer try to load `language.dtd`. - - * Require texmath 0.11.2.1 - - * Use latest pandoc-citeproc (0.16.1.1). - - * MANUAL.txt: - - + Clarify variable substitution indentation in templates (#5338, - Agustín Martín Barbero). - + Reorder custom-styles section (#5324, Mauro Bieg). - -pandoc (2.6) - - * Support ipynb (Jupyter notebook) as input and output format. - - + Add `ipynb` as input and output format (extension `.ipynb`). - + Added Text.Pandoc.Readers.Ipynb [API change]. - + Added Text.Pandoc.Writers.Ipynb [API change]. - + Add `PandocIpynbDecodingError` constructor to Text.Pandoc.Error.Error - [API change]. - + Depend on ipynb library. - + Note: there is no template for ipynb. - - * Add DokuWiki reader (#1792, Alexander Krotov). This adds - Text.Pandoc.Readers.DokuWiki [API change], and adds `dokuwiki` - as an input format. - - * Implement task lists (#3051, Mauro Bieg). Added `task_lists` - extension. Task lists are supported from markdown and gfm input. - They should work, to some degree, in all output formats, though in - most formats you'll get a bullet list with a unicode character for - the box. In HTML, you get checkboxes and in LaTeX/PDF output, a - box is used as the list marker. API changes: - - + Added constructor `Ext_task_lists` to `Extension`. - + Added `taskListItemFromAscii` and `taskListItemToAscii` to - Text.Pandoc.Shared. - - * Allow some command line options to take URL in addition to FILE. - `--include-in-header`, `--include-before-body`, `--include-after-body`. - - * HTML reader: - - + Handle empty `start` attribute (see #5162). - + Treat `textarea` as a verbatim environment (#5241) and preserve - spacing. - - * RST reader: - - + Change treatment of `number-lines` directive (Brian Leung, - #5207). Directives of this type without numeric inputs should - not have a `startFrom` attribute; with a blank value, the - writers can produce extra whitespace. - + Removed superfluous `sourceCode` class on code blocks (#5047). - + Handle `sourcecode` directive as synonynm for `code` (#5204). - - * Markdown reader: - - + Remove `sourceCode` class for literate Haskell code blocks - (#5047). Reverse order of `literate` and `haskell` classes on - code blocks when parsing literate Haskell, so `haskell` is - first. - + Treat `<textarea>` as a verbatim environment (#5241). - - * Org reader: - - + Handle `minlevel` option differently (#5190, Brian Leung). - When `minlevel` exceeds the original minimum level observed in - the file to be included, every heading should be shifted - rightward. - + Allow for case of `:minlevel == 0` (#5190). - + Fix treatment of links to images (#5191, Albert Krewinkel). - Links with descriptions which are pointing to images are no - longer parsed as inline images, but as links. - + Add support for #+SELECT_TAGS (Brian Leung). - + Separate filtering logic from conversion function (Brian Leung). - - * TWiki reader: Fix performance issue with underscores (#3921). - - * MediaWiki reader: use `_` instead of `-` in auto-identifiers (#4731). - We may not still be exactly matching mediawiki's algorithm. - - * LaTeX reader: - - + Remove `sourceCode` class for literate Haskell code blocks - (#5047). Reverse order of `literate` and `haskell` classes on - code blocks when parsing literate Haskell, so `haskell` is - first. - + Support `\DeclareMathOperator` (#5149). - + Support `\inputminted` (#5103). - + Support `\endinput` (#5233). - + Allow includes with dots like `cc_by_4.0`. Previously the `.0` - was interpreted as a file extension, leading pandoc not to add - `.tex` (and thus not to find the file). The new behavior matches - tex more closely. - - * Man reader: - - + Use `mapLeft` from Shared instead of defining own. - - * Docx reader (Jesse Rosenthal): - - + Handle level overrides (#5134). - - * Docx writer: - - + Support custom properties (#3024, #5252, Agustín Martín Barbero). - Also supports additional core properties: `subject`, `lang`, - `category`, `description`. - + Make Level into a real type, instead of an alias for a tuple - (Jesse Rosenthal). - - * ICML writer (Mauro Bieg): - - + Support custom-styles (#5137, see #2106). - + Support unnumbered headers (#5140). - - * Texinfo writer: Use header identifier for anchor if present (#4731). - Previously we were overwriting an existing identifier with a new one. - - * Org writer: Preserve line-numbering for example and code blocks - (Brian Leung). - - * Man/Ms writers: Don't escape `-` as `\-`. The `\-` gets rendered - in HTML and PDF as a unicode minus sign. - - * Ms writer: Ensure we have a newline after .EN in disply math (#5251). - - * RST writer: Don't wrap simple table header lines (#5128). - - * Asciidoc writer: Shorter delimiters for tables, blockquotes - (#4364). This matches asciidoctor reference docs. - - * Dokuwiki writer: Remove automatic `:` prefix before internal image - links (#5183, Damien Clochard). This prevented users from making - relative image links. - - * Zimwiki writer: remove automatic colon prefix before internal - images (#5183, Damien Clochard). - - * MediaWiki writer: fix caption, use 'thumb' instead of 'frame' - (#5105). Captions used to have the word 'caption' prepended; this - has been removed. Also, 'thumb' is used instead of 'frame' to - allow images to be resized. - - * reveal.js writer: - - + Ensure that we don't get > 2 levels of section nesting, - even with slide level > 2 (#5168). - + If slide level == N but there is no N-level header, make - sure the next header with level > N gets treated as a slide - and put in a section, rather than remaining loose (#5168). - - * Markdown writer: - - + Make `plain` RawBlocks pass through in `plain` output. - + Include needed whitespace after HTML figure (#5121). - We use HTML for a figure in markdown dialects that can't - represent it natively. - - * Commonmark writer: - - + Fix handling of SoftBreak with `hard_line_breaks` (#5195). - + Implement `--toc` (`writerTableOfContents`) - in commonmark/gfm writers (#5172). - - * EPUB writer: - - + Ensure that picture transforms are done on metadata too. - + Small fixes to `nav.xhtml`: - Add 'landmarks' id attribute to the landmarks nav. - Replace old default CSS removing numbers from ol.toc li - with new rules that match `nav#toc ol, nav#landmarks ol`. - We keep the `toc` class on `ol` for backwards compatibility. - - * LaTeX writer: - - + Make raw content marked `beamer` pass through in `beamer` - output (pandoc/lua-filters#40). - + Beamer: avoid duplicated `fragile` property in some cases - (#5208). - + Add `#` special characters for listings (#4939). - This character needs special handling in `\lstinline`. - - * RTF writer: use `toTableOfContents` from Shared to replace - old duplicated code. - - * Pptx writer: - - + Support custom properties. Also supports additional core - properties: `subject`, `category`, `description` (#5252, - Agustín Martín Barbero). - + Use `toTableOfContents` from Shared to replace old duplicated code. - - * ODT writer (Augustín Martín Barbero): - - + Fix typo in custom properties (#2839). - + Improve standard properties, including the following core - properties: `generator` (Pandoc/VERSION), `description`, `subject`, - `keywords`, `initial-creator` (from authors), `creation-date` - (actual creation date) (#5252). - - * Custom writers: - - + Allow '-' in filenames for custom lua writers (#5187). - + sample.lua: add `SingleQuoted`, `DoubleQuoted` (#5104). - + sample.lua: Add a missing `>` (MichaWiedenmann). - - * reveal.js template: Add `zoomKey` config (#4249). - - * HTML5 template: Remove unnecessary type="text/css" on style and - link for HTML5 (#5146). - - * LaTeX template (Andrew Dunning, except where noted): - - + Prevent fontspec from scaling `mainfont` to match the default - font, Latin Modern. A main font set to 12pt could - previously appear between 11pt to 13pt depending on its design. - To return to the earlier rendering, use `-V - mainfontoptions="Scale=MatchLowercase"` (#5212, #5218). - + Display monospaced fonts without TeX ligatures when using - `--pdf-engine=lualatex`. It now matches the behaviour of other - engines (#5212, #5218). - + Remove the deprecated `romanfont` variable. The functionality of - `mainfont` is identical (#5218). - + Render `\subtitle` with the standard document classes. - Previously, `subtitle` only appeared when using the KOMA-Script - classes or Beamer (#5213, #5244). - + Use Babel instead of Polyglossia for LuaLaTeX. This avoids - several language selection problems, notably with retaining - French spacing conventions when switching to a verbatim - environment or another language; and in printing Greek text - without hyphenation (#5193). - + Use the [`xurl`](https://ctan.org/pkg/xurl) package if - available, improving the appearance of URLs by allowing them to - break at additional points (#5193). - + Use [`bookmark`](https://ctan.org/pkg/bookmark) if available - to correct heading levels in PDF bookmarks: see the [KOMA-Script - 3.26 release notes](https://komascript.de/release3.26) (#5193). - + Require the [`xcolor`](https://ctan.org/pkg/xcolor) package to - avoid a possible error when using additional packages alongside - footnotes in tables (#5193, closes #4861). - + Remove obsolete `fixltx2e` package, which has no functionality - with TeX Live 2015 or later (#5193). - + Allow multiple `fontfamilies.options` (#5193, closes #5194). - + Restrict `institute` variable to Beamer (#5219). - + Use [`footnotehyper`](https://ctan.org/pkg/footnotehyper) - package if available to make footnotes in tables compatible - with `hyperref` (#5234). - + Number parts and chapters in book classes only if the - `numbersections` variable is set, for consistency with other - output formats. To return to the previous behaviour, use - `-V numbersections -V secnumdepth=0` (#5235). - + Reindent file (#5193). - + Use built-in parskip handling with KOMA-Script classes (#5143, Enno). - + Set default listings language for lua, assembler (#5227, John - MacFarlane). Otherwise we get an error when trying to compile code - with lua or assembler code. To change the default dialect - (currenty 5.3 for lua and x86masm for assembler), you can use - `--include-in-header` to inject something like - `\lstset{defaultdialect=[5.2]Lua}`. - - * Text.Pandoc.Readers: Changed types of `readJSON`; it now runs - in an instance of PandocMonad, like the other readers and - writers. [API change] - - * Text.Pandoc.Writers: Changed types of `writeJSON`; it now runs - in an instance of PandocMonad, like the other readers and - writers. [API change] - - * Text.Pandoc.Error: Added `PandocUTF8DecodingError` constructor - for `PandocError`. [API change] - - * Text.Pandoc.Writers.Shared - add `toTableOfContents`. [API change] - This is refactored out from the Markdown writer. - It can be used in other writers to create a table of contents. - - * Improve error messages for UTF-8 decoding errors. Now we give - the filename and byte offset (#4765). - - * Text.Pandoc.XML: Strip out illegal XML characters in - `escapeXMLString` (#5119). - - * Text.Pandoc.Process: update `pipeProcess` (Albert Krewinkel). - The implementation of `pipeProcess` was rewritten to fix sporadic - failures caused by prematurely closed pipes. - - * Use `safeRead` instead of `read` everywhere in the code - (John MacFarlane, Mauro Bieg, #5162, #5180). - - * Text.Pandoc.SelfContained: Decompress `.svgz` when - converting to `data:` URI (#5163, Alexander Krotov). - - * Text.Pandoc.Parsing: Remove unused `HasHeaderMap` - (#5175, Alexander Krotov). [API change] - - * Normalize Windows paths to account for change in ghc 8.6 (#5127). - When pandoc is compiled with ghc 8.6, Windows paths are treated - differently, and paths beginning `\\server` no longer work. - This commit rewrites such patsh to `\\?\UNC\server` which works. - The change operates at the level of argument parsing, so it - only affects the command line program. - - * Simplify/fix reading of `--metadata` values on command line - to avoid problems relating to hvr/HsYAML#7 (#5177). - - * data/pandoc.lua: auto-fix nested constructor arguments (Albert - Krewinkel). Incorrect types to pandoc element constructors are - automatically converted to the correct types when possible. This was - already done for most constructors, but conversions are now also done - for nested types (like lists of lists). - - * Removed custom Setup.hs, use build-type: simple. The only thing we - gained from the custom build was automatic installation of the man - page when using 'cabal install'. But custom builds cause problems, - e.g., with cross-compilation. Installation of the man page is - better handled by packagers. Note to packagers (e.g. Debian): it - may be necessary to add a step installing the man page with the - next release. - - * Allow latest http-client, tasty, zip-archive, Glob. - - * Require skylighting >= 0.7.5, adding support for sml, J, - typescript. - - * Tests: Cleaned up `findPandoc` in `Tests.Helpers`, so it - works well with cabal v2. - - * INSTALL.md: - - + Use button for installer links (John MacFarlane, Mauro Bieg, - #5167). - + Fix links and bump required stack version (max). - + Improve installation notes on associated software (Andrew - Dunning). Includes explanation of how to install related tools - with package managers (since the method of installing - `rsvg-convert` is not obvious). - - * doc/org.md: improve documentation of org features (Albert - Krewinkel). - - * doc/lua-filters.md: use 3rd level headers for module fields. - - * MANUAL: - - + Clarify automatic identifiers (#5201). We remove - non-alphanumerics. This includes, e.g., emojis. - + Fix example for Div with id (Geoffrey Ely). - + Update list of LaTeX packages used. - + Make it clear that `hard_line_breaks` works in `gfm` (see #5195). - + Mention `raw_attribute` in documentation for `raw_html` and - `raw_tex` (#5240, thanks to @eiro). - + Clarify that `$sep$` must come right before `$endfor$` in templates - (#5243, Lev Givon). - + Document metadata support for docx, odt, pptx writers (Agustín - Martín Barbero). - + Reorganize template variables (#5249, Andrew Dunning). - Add additional headings to categorize variables, and - alphabetize when there is large number; add more examples. - + Document `date-meta` template variable (#5260, Tristan Stenner). - - * trypandoc: Fix CSS and viewport. - -pandoc (2.5) - - * Text.Pandoc.App: split into several unexported submodules (Albert - Krewinkel): Text.Pandoc.App.FormatHeuristics, - Text.Pandoc.App.Opt, Text.Pandoc.App.CommandLineOptions, - Text.Pandoc.App.OutputSettings. This is motivated partly by the - desire to reduce recompilations when something is modified, - since App previously depended on virtually every other module. - - * Text.Pandoc.Extensions - - + Semantically, `gfm_auto_identifiers` is now a modifier of - `auto_identifiers`; for identifiers to be set, `auto_identifiers` must - be turned on, and then the type of identifier produced depends on - `gfm_auto_identifiers` and `ascii_identifiers` are set. Accordingly, - `auto_identifiers` is now added to `githubMarkdownExtensions` (#5057). - + Remove `ascii_identifiers` from `githubMarkdownExtensions`. - GitHub doesn't seem to strip non-ascii characters any more. - - * Text.Pandoc.Lua.Module.Utils (Albert Krewinkel) - - + Test AST object equality via Haskell (#5092). Equality of Lua - objects representing pandoc AST elements is tested by unmarshalling - the objects and comparing the result in Haskell. - A new function `equals` which performs this test has been added to the - `pandoc.utils` module. - + Improve stringify. Meta value strings (MetaString) - and booleans (MetaBool) are now converted to the literal string and the - lowercase boolean name, respectively. Previously, all values of these - types were converted to the empty string. - - * Text.Pandoc.Parsing: Remove Functor and Applicative constraints where Monad - already exists (Alexander Krotov). - - * Text.Pandoc.Pretty: Don't render BreakingSpace at end of line - or beginning of line (#5050). - - * Text.Pandoc.Readers.Markdown - - + Fix parsing of citations, quotes, and underline emphasis - after symbols. Starting with pandoc 2.4, citations, quoted inlines, - and underline emphasis were no longer recognized after certain - symbols, like parentheses (#5099, #5053). - + In pandoc 2.4, a soft break after an abbreviation would be - relocated before it to allow for insertion of a nonbreaking - space after the abbreviation. This behavior is here reverted. - A soft break after an abbreviation will remain, and no nonbreaking - space will be added. Those who care about this issue should take care not - to end lines with an abbreviation, or to insert nonbreaking spaces - manually. - - * Text.Pandoc.Readers.FB2: Do not throw error for unknown elements in - `<body>` (Alexander Krotov). Some libraries include custom elements - in their FB2 files. - - * Text.Pandoc.Readers.HTML - - + Allow `tfoot` before body rows (#5079). - + Parse `<small>` as a Span with class "small" (#5080). - + Allow thead containing a row with `td` rather than `th` (#5014). - - * Text.Pandoc.Readers.LaTeX - - + Cleaned up handling of dimension arguments. Allow decimal points, - preceding space. - + Don't allow arguments for verbatim, etc. - + Allow space before bracketed options. - + Allow optional arguments after `\\` in tables. - + Improve parsing of `\tiny`, `\scriptsize`, etc. Parse as raw, - but know that these font changing commands take no arguments. - - * Text.Pandoc.Readers.Muse - - + Trim whitespace before parsing grid table cells (Alexander Krotov). - + Add grid tables support (Alexander Krotov). - - * Text.Pandoc.Shared - - + For bibliography match Div with id `refs`, not class `references`. - This was a mismatch between pandoc's docx, epub, latex, and markdown - writers and the behavior of pandoc-citeproc, which actually looks for a - div with id `refs` rather than one with class `references`. - + Exactly match GitHub's identifier generating algorithm (#5057). - + Add parameter for `Extensions` to `uniqueIdent` and - `inlineListToIdentifier` (#5057). [API change] - This allows these functions to be sensitive to the settings of - `Ext_gfm_auto_identifiers` and `Ext_ascii_identifiers`, and allows us to - use `uniqueIdent` in the CommonMark reader, replacing custom code. It - also means that `gfm_auto_identifiers` can now be used in all formats. - - * Text.Pandoc.Writers.AsciiDoc - - + Use `.`+ as list markers to support nested ordered lists (#5087). - + Support list number styles (#5089). - + Render Spans using `[#id .class]#contents#` (#5080). - - * Text.Pandoc.Writers.CommonMark - - + Respect `--ascii` (#5043, quasicomputational). - + Make sure `--ascii` affects quotes, super/subscript. - - * Text.Pandoc.Writers.Docx - - + Fix bookmarks to headers with long titles (#5091). - Word has a 40 character limit for bookmark names. In addition, bookmarks - must begin with a letter. Since pandoc's auto-generated identifiers may - not respect these constraints, some internal links did not work. With - this change, pandoc uses a bookmark name based on the SHA1 hash of the - identifier when the identifier isn't a legal bookmark name. - + Add bookmarks to code blocks (Nikolay Yakimov). - + Add bookmarks to images (Nikolay Yakimov). - + Refactor common bookmark creation code into a function (Nikolay Yakimov). - - * Text.Pandoc.Writers.EPUB: Handle calibre metadata (#5098). - Nodes of the form - - <meta name="calibre:series" content="Classics on War and Politics"/> - - are now included from an epub XML metadata file. You can also include - this information in your YAML metadata, like so: - - calibre: - series: Classics on War and Policitics - - In addition, ibooks-specific metadata can now be included via an XML - file. (Previously, it could only be included via YAML metadata, see - #2693.) - - * Text.Pandoc.Writers.HTML: Use plain `"` instead of `"` outside of - attributes. - - * Text.Pandoc.Writers.ICML: Consolidate adjacent strings, inc. spaces. - This avoids splitting up the output unnecessarily into separate elements. - - * Text.Pandoc.Writers.LaTeX: Don't emit `[<+->]` unless beamer output, even - if `writerIncremental` is True (#5072). - - * Text.Pandoc.Writers.Muse (Alexander Krotov). - - + Output tables as grid tables if they have multi-line cells. - + Indent simple tables only on the top level. - + Output tables with one column as grid tables. - + Add support for `--reference-location`. - + Internal improvements. - - * Text.Pandoc.Writers.OpenDocument: Fix list indentation (Nils Carlson, - #5095). This was a regression in pandoc 2.4. - - * Text.Pandoc.Writers.RTF: Fix warnings for skipped raw inlines. - - * Text.Pandoc.Writers.Texinfo: Add blank line before `@menu` section (#5055). - - * Text.Pandoc.XML: in `toHtml5Entities`, prefer shorter entities - when there are several choices for a particular character. - - * data/abbreviations - - + Add additional abbreviations (Andrew Dunning) - Many of these borrowed from the Chicago Manual of Style 10.42, - 'Scholarly abbreviations'. - - * Templates - - + Asciidoc template: add :lang: to title header is lang is set in - metadata (#5088). - - * pandoc.cabal: Add cabal flag `derive_json_via_th` (Albert Krewinkel) - Disabling the flag will cause derivation of ToJSON and FromJSON - instances via GHC Generics instead of Template Haskell. The flag is - enabled by default, as deriving via Generics can be slow (see #4083). - - * trypandoc: - - + Tweaked drop-down lists. - + Put link to site in footer. - + Preselect output format. - + Update on change of in or out format. - + Add man input format. - - * MANUAL.txt: - - + Fix outdated description of latex_macros extension. - + Clarified placement of bibliography. - + Added "A note on security." - + Fix note on curly brace syntx for locators. - + Document new explicit syntax for citeproc locators. - + Remove confusing cross-links for some extensions. - + Don't put pandoc in code ticks in heading. - + Document that `--ascii` works for gfm and commonmark too. - + Add `man` to `--from` options. - - * doc/customizing-pandoc.md: various improvements (Mauro Bieg). - - -pandoc (2.4) - - [new features] - - * New input format `man` (Yan Pashkovsky, John MacFarlane). - - [behavior changes] - - * `--ascii` is now implemented in the writers, not in Text.Pandoc.App, - via the new `writerPreferAscii` field in `WriterOptions`. - Now the `write*` functions for Docbook, HTML, ICML, JATS, LaTeX, - Ms, Markdown, and OPML are sensitive to `writerPreferAscii`. - Previously the to-ascii translation was done in Text.Pandoc.App, - and thus not available to those using the writer functions - directly. - - * `--ascii` now works with Markdown output. HTML5 character reference - entities are used. - - * `--ascii` now works with LaTeX output. 100% ASCII output can't be - guaranteed, but the writer will use commands like `\"{a}` and `\l` - whenever possible, to avoid emiting a non-ASCII character. - - * For HTML5 output, `--ascii` now uses HTML5 character reference - entities rather than numerical entities. - - * Improved detection of format based on extension (in Text.Pandoc.App). - We now ensure that if someone tries to convert a file for a - format that has a pandoc writer but not a reader, it won't just - default to markdown. - - * Add viz. to abbreviations file (#5007, Nick Fleisher). - - * AsciiDoc writer: always use single-line section headers, - instead of the old underline style (#5038). Previously the single-line - style would be used if `--atx-headers` was specified, but - now it is always used. - - * RST writer: Use simple tables when possible (#4750). - - * CommonMark (and gfm) writer: Add plain text fallbacks. (#4528, - quasicomputational). Previously, the writer would unconditionally - emit HTML output for subscripts, superscripts, strikeouts (if the - strikeout extension is disabled) and small caps, even with - `raw_html` disabled. Now there are plain-text (and, where - possible, fancy Unicode) fallbacks for all of these corresponding - (mostly) to the Markdown fallbacks, and the HTML output is only - used when `raw_html` is enabled. - - * Powerpoint writer: support raw openxml (Jesse Rosenthal, #4976). - This allows raw openxml blocks and inlines to be used in the pptx - writer. Caveats: (1) It's up to the user to write - well-formed openxml. The chances for corruption, especially with - such a brittle format as pptx, is high. (2) Because of - the tricky way that blocks map onto shapes, if you are using - a raw block, it should be the only block on a slide - (otherwise other text might end up overlapping it). (3) The - pptx ooxml namespace abbreviations are different from the - docx ooxml namespaces. Again, it's up to the user to get it - right. Unzipped document and ooxml specification should be - consulted. - - * With `--katex` in HTML formats, do not use the autorenderer (#4946). - We no longer surround formulas with `\(..\)` or `\[..\]`. Instead, - we tell katex to convert the contents of span elements with - class "math". Since math has already been identified, this - avoids wasted time parsing for LaTeX delimiters. Note, however, - that this may yield unexpected results if you have span elements - with class "math" that don't contain LaTeX math. - Also, use latest version of KaTeX by default (0.9.0). - - * The man writer now produces ASCII-only output, using groff escapes, - for portability. - - * ODT writer: - - + Add title, author and date to metadata; any remaining - metadata fields are added as `meta:user-defined` tags. - + Implement table caption numbering (#4949, Nils Carlson). - Captioned tables are numbered and labeled with format "Table 1: - caption", where "Table" is replaced by a translation, depending - on the value of `lang` in metadata. Uncaptioned tables are not - enumerated. - + OpenDocument writer: Implement figure numbering in captions (#4944, - Nils Carlson). Figure captions are now numbered 1, 2, 3, ... - The format in the caption is "Figure 1: caption" and so on - (where "Figure" is replaced by a translation, depending on the - value of `lang` in the metadata). Captioned figures are numbered - consecutively and uncaptioned figures are not enumerated. This - is necessary in order for LibreOffice to generate an - Illustration Index (Table of Figures) for included figures. - - * RST reader: Pass through fields in unknown directives as div attributes - (#4715). Support `class` and `name` attributes for all directives. - - * Org reader: Add partial support for `#+EXCLUDE_TAGS` option. (#4284, - Brian Leung). Headers with the corresponding tags should not - appear in the output. - - * Log warnings about missing title attributes now include a - suggestion about how to fix the problem (#4909). - - * Lua filter changes (Albert Krewinkel): - - + Report traceback when an error occurs. A proper Lua traceback is - added if either loading of a file or execution of a filter - function fails. This should be of help to authors of Lua filters - who need to debug their code. - - + Allow access to pandoc state (#5015). Lua filters and custom - writers now have read-only access to most fields of pandoc's - internal state via the global variable `PANDOC_STATE`. - - + Push ListAttributes via constructor (Albert Krewinkel). - This ensures that ListAttributes, as present in OrderedList elements, - have additional accessors (viz. `start`, `style`, and `delimiter`). - - + Rename ReaderOptions fields, use snake_case. Snake case is used - in most variable names, using camelCase for these fields was an - oversight. A metatable is added to ensure that the old field - names remain functional. - - + Iterate over AST element fields when using `pairs`. This makes - it possible to iterate over all ield names of an AST element by - using a generic `for` loop with pairs`: - - for field_name, field_content in pairs(element) do - ... - end - - Raw table fields of AST elements should be considered an - implementation detail and might change in the future. Accessing - element properties should always happen through the fields - listed in the Lua filter docs. - - Note that the iterator currently excludes the `t`/`tag` field. - - + Ensure that MetaList elements behave like Lists. Methods usable - on Lists can also be used on MetaList objects. - - + Fix MetaList constructor (Albert Krewinkel). Passing a MetaList - object to the constructor `pandoc.MetaList` now returns the - passed list as a MetaList. This is consistent with the - constructor behavior when passed an (untagged) list. - - * Custom writers: Custom writers have access to the global variable - `PANDOC_DOCUMENT`(Albert Krewinkel, #4957). The variable contains - a userdata wrapper around the full pandoc AST and exposes two - fields, `meta` and `blocks`. The field content is only - marshaled on-demand, performance of scripts not accessing the - fields remains unaffected. - - [API changes] - - * Text.Pandoc.Options: add `writerPreferAscii` to `WriterOptions`. - - * Text.Pandoc.Shared: - - + Export `splitSentences`. This was previously duplicated in the Man and - Ms writers. - + Add `ToString` typeclass (Alexander Krotov). - - * New exported module Text.Pandoc.Filter (Albert Krewinkel). - - * Text.Pandoc.Parsing - - + Generalize `gridTableWith` to any `Char` Stream (Alexander Krotov). - + Generalize `readWithM` from `[Char]` to any `Char` Stream - that is a `ToString` instance (Alexander Krotov). - - * New exposed module Text.Pandoc.Filter (Albert Krewinkel). - - * Text.Pandoc.XML: add `toHtml5Entities`. - - * New exported module Text.Pandoc.Readers.Man (Yan Pashkovsky, John - MacFarlane). - - * Text.Pandoc.Writers.Shared - - + Add exported functions `toSuperscript` and - `toSubscript` (quasicomputational, #4528). - + Remove exported functions `metaValueToInlines`, - `metaValueToString`. Add new exported functions - `lookupMetaBool`, `lookupMetaBlocks`, `lookupMetaInlines`, - `lookupMetaString`. Use these whenever possible for uniformity - in writers (Mauro Bieg, #4907). (Note that - removed function `metaValueToInlines` was in previous - released versions.) - + Add `metaValueToString`. - - * Text.Pandoc.Lua - - + Expose more useful internals (Albert Krewinkel): - - - `runFilterFile` to run a Lua filter from file; - - data type `Global` and its constructors; and - - `setGlobals` to add globals to a Lua environment. - - This module also contains `Pushable` and `Peekable` instances - required to get pandoc's data types to and from Lua. Low-level - Lua operation remain hidden in Text.Pandoc.Lua. - - + Rename `runPandocLua` to `runLua` (Albert Krewinkel). - - + Remove `runLuaFilter`, merging this into Text.Pandoc.Filter.Lua's - `apply` (Albert Krewinkel). - - [bug fixes and under-the-hood improvements] - - * Text.Pandoc.Parsing - - + Make `uri` accept any stream with Char tokens (Alexander Krotov). - + Rewrite `uri` without `withRaw` (Alexander Krotov). - + Generalize `parseFromString` and `parseFromString'` to any - streams with Char token (Alexander Krotov) - + Rewrite `nonspaceChar` using `noneOf` (Alexander Krotov) - - * Text.Pandoc.Shared: Reimplement `mapLeft` using `Bifunctor.first` - (Alexander Krotov). - - * Text.Pandoc.Pretty: Simplify `Text.Pandoc.Pretty.offset` - (Alexander Krotov). - - * Text.Pandoc.App - - + Work around HXT limitation for --syntax-definition with windows - drive (#4836). - + Always preserve tabs for man format. We need it for tables. - + Split command line parsing code into a separate unexported - module, Text.Pandoc.App.CommandLineOptions (Albert Krewinkel). - - * Text.Pandoc.Readers.Roff: new unexported module for tokenizing - roff documents. - - * New unexported module Text.Pandoc.RoffChar, provided character - escape tables for roff formats. - - * Text.Pandoc.Readers.HTML: Fix `htmlTag` and `isInlineTag` to - accept processing instructions (#3123, regression since 2.0). - - * Text.Pandoc.Readers.JATS: Use `foldl'` instead of `maximum` to - account for empty lists (Alexander Krotov). - - * Text.Pandoc.Readers.RST: Don't allow single-dash separator in - headerless table (#4382). - - * Text.Pandoc.Readers.Org: Parse empty argument array in inline src - blocks (Brian Leung). - - * Text.Pandoc.Readers.Vimwiki: - - + Get rid of `F`, `runF` and `stateMeta'` in favor of `stateMeta` - (Alexander Krotov). - + Parse `Text` without converting to `[Char]` (Alexander Krotov). - - * Text.Pandoc.Readers.Creole: Parse `Text` without converting to - `[Char]` (Alexander Krotov). - - * Text.Pandoc.Readers.LaTeX - - + Allow space at end of math after `\` (#5010). - + Add support for `nolinkurl` command (#4992, Brian Leung). - + Simplified type on `doMacros'`. - + Tokenize before pulling tokens, rather than after (#4408). This - has some performance penalty but is more reliable. - + Make macroDef polymorphic and allow in inline context. - Otherwise we can't parse something like `\lowercase{\def\x{Foo}}`. - I have actually seen tex like this in the wild. - + Improved parsing of `\def`, `\let`. We now correctly parse: - ``` - \def\bar{hello} - \let\fooi\bar - \def\fooii{\bar} - \fooi +\fooii - - \def\bar{goodbye} - \fooi +\fooii - ``` - + Improve parsing of `\def` argspec. - + Skip `\PackageError` commands (see #4408). - + Fix bugs omitting raw tex (#4527). The default is `-raw_tex`, - so no raw tex should result unless we explicitly say `+raw_tex`. - Previously some raw commands did make it through. - + Moved `isArgTok` to Text.Pandoc.Readers.LaTeX.Parsing. - + Moved `babelLangToBCP`, `polyglossiaLangToBCP` to new module, - Text.Pandoc.Readers.LaTeX.Lang (unexported). - + Simplified accent code using unicode-transforms. - New dependency on unicode-transforms package for normalization. - + Allow verbatim blocks ending with blank lines (#4624). - + Support `breq` math environments: `dmath`, `dgroup`, `darray`. - This collects some of the general-purpose code from the LaTeX reader, - with the aim of making the module smaller. - - * Text.Pandoc.Readers.Markdown - - + Fix awkward soft break movements before abbreviations (#4635). - + Add updateStrPos in a couple places where needed. - - * Text.Pandoc.Readers.Docx: Trigger bold/italic with bCs, iCs - (#4947). These are variants for "complex scripts" like Arabic - and are now treated just like b, i (bold, italic). - - * Text.Pandoc.Readers.Muse (Alexander Krotov) - - + Try to parse lists before trying to parse table. - This ensures that tables inside lists are parsed correctly. - + Forbid whitespace after opening and before closing markup - elements. - + Parse page breaks. - + Simplify `museToPandocTable` to get rid of partial functions. - + Allow footnotes to start with empty line. - + Make sure that the whole text is parsed. - + Allow empty headers. Previously empty headers caused parser to - terminate without parsing the rest of the document. - + Allow examples to be indented with tabs. - + Remove indentation from examples indicated by `{{{` and `}}}`. - + Fix parsing of empty cells. - + Various changes to internals. - + Rewrite some parsers in applicative style. - + Avoid tagsoup dependency. - + Allow table caption to contain `+`. - - * Text.Pandoc.Writers.LaTeX - - + Add newline if math ends in a comment (#4880). This prevents the - closing delimiter from being swalled up in the comment. - + With `--listings`, don't pass through org-babel attributes (#4889). - + With `--biblatex`, use `\autocite` when possible (#4960). - `\autocites{a1}{a2}{a3}` will not collapse the entries. So, if - we don't have prefixes and suffixes, we use instead - `\autocite{a1,a2,a3}`. - + Fix description lists contining highlighted code (#4662). - - * Text.Pandoc.Writers.Man - - + Don't wrap `.SH` and `.SS` lines (#5019). - + Avoid unnecessary `.RS`/`.RE` pair in definition lists with - one paragraph definitions. - + Moved common groff functions to Text.Pandoc.Writers.Groff. - * Fix strong/code combination on man (should be `\f[CB]` not - `\f[BC]`, see #4973). - + Man writer: use `\f[R]` instead of `\f[]` to reset font - (Alexander Krotov, #4973). - + Move `splitSentences` to Text.Pandoc.Shared. - - * Text.Pandoc.Writers.Docx - - + Add framework for custom properties (#3034). So far, we don't - actually write any custom properties, but we have the - infrastructure to add this. - - + Handle tables in table cells (#4953). Although this is not - documented in the spec, some versions of Word require a `w:p` - element inside every table cell. Thus, we add one when the - contents of a cell do not already include one (e.g. when a table - cell contains a table). - - * Text.Pandoc.Writers.AsciiDoc: Prevent illegal nestings. - Adjust header levels so that n+1 level headers are only - found under n level headers, and the top level is 1. - - * Text.Pandoc.Writers.OpenDocument: Improve bullet/numbering - alignment (#4385). This change eliminates the large gap we used - to have between bullet and text, and also ensures that numbers - in numbered lists will be right-aligned. - - * Text.Pandoc.Writers.ZimWiki - - + Number ordered list items sequentially, rather than always - with 1 (#4962). - + Remove extra indentation on lists (#4963). - - * Text.Pandoc.Writers.EPUB: Use metadata field `css` instead of - `stylesheet` (Mauro Bieg, #4990). - - * Text.Pandoc.Writers.Markdown: Ensure blank between raw block and - normal content (#4629). Otherwise a raw block can prevent a - paragraph from being recognized as such. - - * Text.Pandoc.Writers.Ms - - + Removed old `escapeBar`. We don't need this now that we use - `@` for math delim. - + Moved common code to Text.Pandoc.Writers.Roff and to - Text.Pandoc.RoffChar. - + Move `splitSentences` to Text.Pandoc.Shared (to avoid duplication - with the man writer). - - * Text.Pandoc.Writers.Muse (Alexander Krotov). - - + Add support for grid tables. - + Fix Muse writer style. - + Use `length` instead of `realLength` to calculate definition - indentation. Muse parsers don't take character width into - account when calculating indentation. - + Do not insert newline before lists. - + Use lightweight markup after `</em>` tag. - - * New unexported module Text.Pandoc.Writers.Roff, providing functions - useful for all roff format writers (man, ms). - - * Text.Pandoc.Lua - - + Move globals handling to separate module Text.Pandoc.Lua.Global - (Albert Krewinkel). - - + Lua filter internals: push Shared.Element as userdata (Albert - Krewinkel). Hierarchical Elements were pushed to Lua as plain - tables. This is simple, but has the disadvantage that marshaling - is eager: all child elements will be marshaled as part of the - object. Using a Lua userdata object instead allows lazy access - to fields, causing content marshaling just (but also each time) - when a field is accessed. Filters which do not traverse the full - element contents tree become faster as a result. - - [default template changes] - - * LaTeX template: - - + Add variable `hyperrefoptions` (#4925, Mathias Walter). - + Add variable `romanfont`, `romanfontoptions` (#4665, OvidiusCicero). - - * AsciiDoc template: use single-line style for title. - - * revealjs template: Fix typo in the socket.io javascript plugin (#5006, - Yoan Blanc). - - * Text.Pandoc.Lua.Util: add missing docstring to `defineHowTo` - (Albert Krewinkel). - - * data/pandoc.lua: add datatype ListAttributes (Albert Krewinkel) - - * data/sample.lua: replace custom pipe function with pandoc.utils.pipe - (Albert Krewinkel). - - [documentation improvements] - - * INSTALL.md - - + Add chromeos install instructions (#4958) (Evan Pratten). - + Add note about TinyTeX. - - * MANUAL.txt - - + Change `groff` -> `roff`. - + Implement `--ascii` for Markdown writer. - + Clarify LaTeX image dimensions output (Mauro Bieg). - - * doc/customizing-pandoc.md: added skeleton (Mauro Bieg, #3288). - - * doc/getting-started.md: Added title to test1.md to avoid warning. - - * doc/lua-filters.md: merge type references into main document, - fix description of Code.text (Albert Krewinkel). - - [build infrastructure improvements] - - * Makefile - - + Makefile: added quick-cabal, full-cabal targets. - + Make .msi download targets insensitive to order of appveyor builds. - - * Update benchmarks for ghc 8.6.1. - - * pandoc.cabal: - - + Enable more compiler warnings (Albert Krewinkel). - + Make base lower bound 4.8. - + Bump upper bound for QuickCheck. - + Bump upper bound for binary. - + Updated version bounds for containers and haddock-library (#4974). - + Added docx/docPropos/custom.xml to cabal data-files. - + Require skylighting 0.7.4 (#4920). - + New dependency on unicode-transforms package for normalization. - - * Improved .travis.yml testing and test with GHC 8.6.1 (Albert Krewinkel). - - * Added `tools/changelog-helper.sh`. - - * Added test/grofftest.sh for testing the man reader on real man pages. - -pandoc (2.3.1) - - * RST reader: - - + Parse RST inlines containing newlines (#4912, Francesco Occhipinti). - This eliminates a regression introduced after pandoc 2.1.1, which - caused inline constructions containing newlines not to be recognized. - + Fix bug with internal link targets (#4919). They were gobbling up - indented content underneath. - - * Markdown reader: distinguish autolinks in the AST. With this change, - autolinks are parsed as Links with the `uri` class. (The same is true - for bare links, if the `autolink_bare_uris` extension is enabled.) - Email autolinks are parsed as Links with the `email` class. This - allows the distinction to be represented in the AST. - - * Org reader: - - + Force inline code blocks to honor export options (Brian Leung). - + Parse empty argument array in inline src blocks (Brian Leung). - - * Muse reader (Alexander Krotov): - - + Added additional tests. - + Do not allow code markup to be followed by digit. - + Remove heading level limit. - + Simplify `<literal>` tag parsers - + Parse Text instead of String. Benchmark shows 7% improvement. - + Get rid of HTML parser dependency. - + Various code improvements. - - * ConTeXt writer: change `\` to `/` in Windows image paths (#4918). - We do this in the LaTeX writer, and it avoids problems. - Note that `/` works as a LaTeX path separator on Windows. - - * LaTeX writer: - - + Add support for multiprenote and multipostnote arguments - with `--biblatex` (Brian Leung, #4930). The multiprenotes occur before - the first prefix of a multicite, and the multipostnotes follow the - last suffix. - + Fix a use of `last` that might take empty list. If you ran with - `--biblatex` and have an empty document (metadata but no blocks), - pandoc would previously raise an error because of the use of - `last` on an empty list. - - * RTF writer: Fix build failure with ghc-8.6.1 caused by missing - MonadFail instance (Jonas Scholl). - - * ODT Writer: Improve table header row style handling (Nils Carlson). - This changes the way styles for cells in the header row - and normal rows are handled in ODT tables. - Previously a new (but identical) style was generated for - every table, specifying the style of the cells within the table. - After this change there are two style definitions for table cells, - one for the cells in the header row, one for all other cells. - This doesn't change the actual styles, but makes post-processing - changes to the table styles much simpler as it is no longer - necessary to introduce new styles for header rows and there are - now only two styles where there was previously one per table. - - * HTML writer: - - + Don't add `uri` class to presumed autolinks. Formerly the `uri` - class was added to autolinks by the HTML writer, but it had to - guess what was an autolink and could not distinguish - `[http://example.com](http://example.com)` from - `<http://example.com>`. It also incorrectly recognized - `[pandoc](pandoc)` as an autolink. Now the HTML writer - simply passes through the `uri` attribute if it is present, - but does not add anything. - + Avoid adding extra section nestings for revealjs. - Previously revealjs title slides at level (slidelevel - 1) - were nested under an extra section element, even when - the section contained no additional (vertical) content. - That caused problems for some transition effects. - + Omit unknown attributes in EPUB2 output. For example, - `epub:type` attributes should not be passed through, - or the epub produced will not validate. - - * JATS writer: remove 'role' attribute on 'bold' and 'sc' elements (#4937). - The JATS spec does not allow these. - - * Textile writer: don't represent `uri` class explicitly - for autolinks (#4913). - - * Lua filters (Albert Krewinkel): - - + Cleanup filter execution code. - + Better error on test failure. - - * HTML, Muse reader tests: reduce time taken by round-trip test. - - * Added cabal.project. - - * MANUAL: `epub:type` is only useful for epub3 (Maura Bieg). - - * Use hslua v1.0.0 (Albert Krewinkel). - - * Fix `translations/ru` to use modern Russian orthography - (Ivan Trubach). - - * Build Windows binary using ghc 8.6.1 and cabal new-build. This - fixes issues with segfaults in the 32-bit Windows binaries (#4283). - -pandoc (2.3) - - * Add `--metadata-file` option (Mauro Bieg, #1960), which allows - users to specify metadata in a YAML file, regardless of the - input format (#1960). - - * Text.Pandoc.Writers.Shared: export `isDisplayMath` (API change). - - * Text.Pandoc.Readers.Markdown: export `yamlToMeta` (API change, - Mauro Bieg). - - * Text.Pandoc.Readers.LaTeX.Types: - - + New type `ArgSpec` (API change). - + Second parameter of `Macro` constructor is now `[ArgSpec]` instead of - `Int` (API change). - - * Markdown reader: - - + Use `tex` instead of `latex` for raw tex-ish content. We can't - always tell if it's LaTeX, ConTeXt, or plain TeX. Better just to - use `tex` always. Note that if `context` or `latex` specifically - is desired, you can still force that in a markdown document by - using the raw attribute. Note that this change may affect some - filters, if they assume that raw tex parsed by the Markdown reader - will be RawBlock (Format `latex`). In most cases it should be - trivial to modify the filters to accept `tex` as well. - + Refactor and reorganize YAML code (Mauro Bieg). - + Make `example_lists` work for interrupted lists - without `startnum` (#4908). - - * HTML reader: - - + Parse `<script type="math/tex` tags as math (#4877). - These are used by MathJax in some configurations. - + Extract spaces inside links instead of trimming them - (Alexander Krotov, #4845). - + Added round-trip tests (Alexander Krotov). - + Make parsing sensitive to the `raw_tex` extension (#1126). This now - allows raw LaTeX environments, `\ref`, and `\eqref` to be parsed - (which is helpful for translation HTML documents using MathJaX). - - * Org reader (Albert Krewinkel): - - + Respect export option `p` for planning info. Inclusion of planning info - (`*DEADLINE*`, `*SCHEDULED*`, and `*CLOSED*`) can be controlled via the - `p` export option: setting the option to `t` will add all planning - information in a *Plain* block below the respective headline. - + Org reader internals: don't rely on RecordWildCards and ViewPatterns - ghc extensions. - + Strip planning info from output. Planning info is parsed, but not - included in the output (as is the default with Emacs Org-mode, #4867). - - * LaTeX reader: - - + Split some general-purpose definitions into a separate, unexported - module, Text.Pandoc.Readers.LaTeX.Parsing. This is to avoid - out-of-memory errors compiling the LaTeX reader. - + Handle parameter patterns for `\def` (#4768, #4771). - For example: `\def\foo#1[#2]{#1 and #2}`. - + Allow `%` characters in URLs. This affects `\href` and `\url` (#4832). - + Fixed parsing of `\texorpdfstring`. We were returning the wrong - argument as the content. - + Support `blockcquote`, `foreignblockquote`, `foreigncblockquote`, - `hyphenblockquote`, `hyphencblockquote`, `enquote*`, `foreignquote`, - `hyphenquote` from `csquotes` (#4848). Note that `foreignquote` - will be parsed as a regular Quoted inline (not using the quotes - appropriate to the foreign language). - + Support more text-mode accents (#4652). Add support for `\|`, `\b`, `\G`, - `\h`, `\d`, `\f`, `\r`, `\t`, `\U`, `\i`, `\j`, `\newtie`, - `\textcircled`. Also fall back to combining characters when composed - characters are not available. - + Resolve `\ref` for figure numbers. - + Support `mintinline` (#4365, Marc Schreiber). - + Fix siunitx unit commands so they are only recognized in - siunitx contexts (#4842). For example, `\l` outside of an - siunitx context should be l-slash, not l (for liter). - + Fix double `unnumbered` class (#4838). The `unnumbered` class - was being included twice for starred sections. - - * RST reader: Don't skip link definitions after comments (#4860). - - * Muse reader (Alexander Krotov): - - + Close the `</quote>` in indented tag test. - There is already a separate test for unclosed `</quote>`. - + Autonumber sections in the correct order. Parsing now stops - at each section header to ensure the header is registered before - parsing of the next section starts. - + Move duplicate code into `headingStart` function. - + Allow newline after opening `*` or `**`. - + Don't allow digits after closing marker in lightweight markup - This change makes reader more compatible with Emacs Muse. - + Parse `<verse>` tag in one pass instead of using - `parseFromString`. This change makes it possible to have - verbatim `</verse>` tag inside verse. - - * ODT reader: deal gracefully with missing `<office:font-face-decls/>` - (#4336). This allows pandoc to parse ODT document produced by KDE's - Calligra. - - * Muse writer (Alexander Krotov): - - + Output headers without asterisks if not on the top level. - + Never wrap definition list terms. - + Set `envInsideBlock = True` when rendering notes. - + Use `""` instead of `[]` for empty String. - + Check for whitespace in the beginning and end of Str's. - + Escape `-`, `;` and `>` in the beginning of strings. - + Escape list markers in the beginning of notes. - + Normalize inline list before testing if tags should be used. - + Use tags instead of lightweight markup for empty strings. - + Use lightweight markup when possible. - + Escape empty strings. This guarantees that `conditionalEscapeString` - never returns empty string. - + Wrap conditionalEscapeString result into `Muse` type. - This removes the need to pass `envInsideLinkDescription` to it. - + Separate `shouldEscapeString` function. - + Simplify inline list rendering. - + Replace newlines in strings with spaces. - - * Docx writer: - - + Add MetaString case for abstract, subtitle (#4900, Mauro Bieg). - + Properly handle display math in spans (#4826). This isn't a - complete solution, since other nestings of display math may still - cause problems, but it should work for what is by far the most - common case. - - * HTML writer: - - + Always output `<dt>` element, even if it is empty (#4883, - Alexander Krotov). - + Don't prefix `epub:` attributes with `data-`. - - * Org writer: Don't escape literal `_`, `^` (#4882). Org doesn't - recognize these escapes. - - * ODT writer: Fix percentage image scaling (#4881, Nils Carlson). - Image scaling was broken when a width was set to a percentage. - - * EPUB writer: set `epub:type` on body element in each chapter, - depending on the `epub:type` of the first section (#4823). This - only affects epub3. See - http://www.idpf.org/epub/profiles/edu/structure/#h.l0bzsloklt10 - - * FB2 writer: put `coverpage` element between title and date rather than in - `document-info` element (#4854). - - * Markdown writer: Escape `~` if strikeout extension enabled (#4840). - - * Haddock writer: Use proper format for latex math in haddock (#4571, Joe - Hermaszewski). Inline math in `\(..\)`, display math in `\[..\]`, - tex is now used. Previously we'd "fake it with unicode" and fall - back to tex when that didn't work. But newer haddock versions - support latex math. - - * TEI writer: - - + Ensure that title element is always present, even if empty (#4839). - + Put author tags in the template, rather than adding them in - the writer (#4839). - - * LaTeX writer/template: be sensitive to `filecolor` variable (#4822). - `linkcolor` only affects internal links, and `urlcolor` only - affects linked URLs. For external links, the option to use is - `filecolor`. - - * ConTeXt writer: output raw `tex` blocks as well as `context` (#969). - - * RST writer: - - + Use `.. raw:: latex` for `tex` content. - + Use `.. container` for generic Divs, instead of raw HTML. - + Render Divs with admonition classes as admonitions (#4833). - Also omit Div with class `admonition-title`. These are generated - by the RST reader and should be omitted on round-trip. - - * Text.Pandoc.PDF: fix message printed when rsvg-convert is not available - (#4855, Antonio Terceiro). - - * HTML5 template: add the `title-block-header` identifier to the - `header` element, to make it easier to style precisely (#4767, - J. B. Rainsberger). - - * OpenDocument template: Remove unnecessary indenting of TOC title (#4798, - José de Mattos Neto). - - * latex template: Add support for $toc-title$ to LaTeX (and PDF) - (#4853, Wandmalfarbe). - - * TEI template: improve `publicationStmt`. Add support for - `publisher`, `address`, `pubPlace`, and `date` variables. - - * beamer template: Support "toc-title" (#4835, Cyril Roelandt). - - * Text.Pandoc.Extensions: Fix haddock on `Ext_footnotes` (Chris Martin). - - * Lua: cleanup Lua utils, remove unused functions (Albert Krewinkel). - - * MANUAL.txt: - - + Clarify that `--biblatex/--natbib` don't work directly for PDF - (#4904). - + Document `epub:type` attribute (Mauro Bieg, #4901) - + Clarify when `--resource-path` has an effect. - + More detail on customization in syntax highlighting section. - + Document encoding issue with `--listings` (#4871, Damien Clochard). - + Remove docs on removed `--katex-stylesheet` (Mauro Bieg, #4862). - + Use https for context wiki links (#4910). - - * CONTRIBUTING.md: - - + Link to lua-filters repository (#4874). - + Fix mistake in REPL instructions for stack. (#4849, Brian Leung). - - * lua-filters.md: add links to filters, and to lua-filters repository - (#4874). - - * INSTALL.md: - - + Indicate that cabal >= 2.0 is needed. - + Added chocolatey installation method (#4844, Miodrag Milić). - - * Travis: exclude round-trip tests, except for nightly test which can fail. - - * Use latest texmath, pandoc-citeproc. - - * Use a patched version of foundation until - https://github.com/haskell-foundation/foundation/pull/503 - is fixed. - - * Clean up appveyor build and Windows package creation. - We now use 64-bit stack and ghc 8.4.3, lts-12 for the 64-bit build. The - WiX-based msi is now 64-bit for 64-bit builds (fixing #4795). - - * Remove obsolete RELEASE-CHECKLIST.md. - - * Added additional compiler warnings in Makefile and CI builds. - -pandoc (2.2.3.2) - - * Markdown reader: Properly handle boolean values in YAML metadata (#4819). - This fixes a regression in 2.2.3, which cause boolean values to - be parsed as MetaInlines instead of MetaBool. - - We here record another undocumented (but desirable) change in 2.2.3: - numerical metadata fields are now parsed as MetaInlines rather than - MetaString. - -pandoc (2.2.3.1) - - * Markdown reader: Fix parsing of embedded mappings in YAML metadata - (#4817). This fixes a regression in 2.2.3 which caused embedded - mappings (e.g. mappings in sequences) not to work in YAML metadata. - -pandoc (2.2.3) - - * RST reader: improve parsing of inline interpreted text roles (#4811). - - + Use a Span with class "title-reference" for the default - title-reference role. - + Use `B.text` to split up contents into `Space`s, `SoftBreak`s, - and `Str`s for `title-reference`. - + Use Code with class "interpreted-text" instead of Span and Str for - unknown roles. (The RST writer has also been modified to round-trip - this properly.) - + Disallow blank lines in interpreted text. - + Backslash-escape now works in interpreted text. - + Backticks followed by alphanumerics no longer end interpreted text. - + Remove support for nested inlines (Francesco Occhipinti). - RST does not allow nested emphasis, links, or other inline - constructs. This fixes several bugs (#4581, #4561, #4792). - - * Org reader: fix parsers relying on `parseFromString` (#4784, Albert - Krewinkel). Emphasis was not parsed when it followed directly after - some block types (e.g., lists). - - * Markdown reader: Allow unquoted numbers and booleans as YAML mapping - keys. Previously in 2.2.2 you could not do - ``` - --- - 0: bar - ... - ``` - but only - ``` - --- - '0': bar - ... - ``` - With this change, both forms work. - - * DocBook reader: metadata handling improvements. - Now we properly parse title and subtitle elements that are direct - children of book and article (as well as children of bookinfo, - articleinfo, or info). We also now use the `subtitle` metadata - field for subtitles, rather than tacking the subtitle on to the - title. - - * RST writer: - - + Allow images to be directly nested within links (#4810, Francesco - Occhipinti). - + Use `titleblock` instead of `title` variable for title block (#4803, - Francesco Occhipinti). `titleblock` contains a properly formatted - title and subtitle (using top-level headers). `title` and - `subtitle` variables are still available and just contain the - title and subtitle text. Note that this change will require an - update to custom rst templates. - + Render Code with class "interpreted-text" as interpreted text role. - - * MediaWiki writer: Avoid extra blank line in tables with empty cells - (#4794). Note that the old output is semantically identical, but the - new output looks better. - - * Lua Utils module: add function `blocks_to_inlines` (#4799, Albert - Krewinkel). Exposes a function converting which flattenes a list of - blocks into a list of inlines. An example use case would be the - conversion of Note elements into other inlines. - - * RST template: use `titleblock` instead of `title`. Users of - custom RST templates will want to update this. - - * LaTeX template: Moved some beamer code in default.latex template. - This change allows beamer themes to change the template and font (as - Metropolis does) (#4450). - - * Better error message on `-t pdf -o out.pdf` (#1155, Mauro Bieg). - - * Added test case for #4669 to repository. - - * INSTALL.md: Fix broken link for cabal-install (#4806, ChanHoHo). - - * MANUAL.txt: - - + Add beamer info for slide backgrounds (#4802, John Muccigrosso). - + Clarify when `csquotes` is used in LaTeX writer (#4514). - + Add `commonmark` to list of output formats where `raw_tex` has an - effect (see #4527). - - -pandoc (2.2.2.1) - - * Fix regression finding templates in user data directory (#4777). - Under version 2.2.1 and prior pandoc found latex templates in the - templates directory under the data directory, but this broke in 2.2.2. - - * Fix for bug in parsing `\input` in `rawLaTeXBlock` and - `rawLaTeXInline` (#4781). (This primarily affects the markdown - reader, and other readers that accept raw tex.) - Starting in 2.2.2, everything after an `\input` (or `\include`) - in a markdown file would be parsed as raw LaTeX. - - * MANUAL: - - + Clarify `gfm` vs `markdown_github` (#4783, Mauro Bieg). - * Use `keywords` instead of `tags` in YAML metadata example (#4779). - Unlike `tags`, `keywords` is used in some of the writers - and default templates. - - * Add missing `rollingLinks` option to revealjs template (#4778, - Igor Khorlo). - -pandoc (2.2.2) - - * Use HsYAML instead of yaml for translations and YAML metadata (#4747). - yaml wraps a C library; HsYAML is pure Haskell. Advances #4535. - - Note: HsYAML implements YAML 1.2, in which the valid true - values are `true`, `True`, `TRUE`. This means a change in - the semantics of YAML metadata that could affect users: - `y`, `yes`, and `on` no longer count as true values. - - * Fix regression: make `--pdf-engine` work with full paths (#4681, Mauro - Bieg). - - * CommonMark reader: Handle `ascii_identifiers` extension (#4742, - Anders Waldenborg). Non-ascii characters were not stripped from - identifiers even if the `ascii_identifiers` extension was - enabled (which is is by default for gfm). - - * TikiWiki reader: Improve list parsing (#4722, Mauro Bieg). - Remove trailing Space from list items. Parse lists that have no space - after marker. - - * LaTeX reader: - - + Treat `lilypond` as a verbatim environment (#4725). - + Parse figure label into Image id (#4700, Mauro Bieg). - + Beamer: Allow "noframenumbering" option (#4696, Raymond Ehlers). - + Allow spaces around `\graphicspath` arguments (#4698). - + Handle includes without surrounding blanklines (#4553). - In addition, `\input` can now be used in an inline context, - e.g. to provide part of a paragraph, as it can in LaTeX. - + In `rawLaTeXBlock`, handle macros that resolve to a - `\begin` or `\end` (#4667). - + In `rawLaTeXBlock`, don't expand macros in macro definitions (#4653). - Note that this only affected LaTeX in markdown. - + Tighten up reading of beamer overlay specifications (#4669). - Ideally we'd turn these on only when reading beamer, but currently - beamer is not distinguished from latex as an input format. - This commit also activates parsing of overlay specifications - after commands in general (e.g. `\item`), since they can occur - in many contexts in beamer. - + Parse more siunitx unit commands (#4296, #4773). - + Be more forgiving in key/value option parsing (#4761). - - * Markdown reader: - - + Allow empty code spans, e.g. `` ` ` ``. - + Emojis are now wrapped in Spans with class `emoji` and - attribute `data-emoji` (Anders Waldenborg, #4743). - This allows the writer to handle them in a special way - (e.g. using a special font, or just rendering the - emoji name). - - * Muse reader (Alexander Krotov, except where indicated): - - + Get rid of non-exhaustive pattern match warning (Mauro Bieg). - + Add support for floating images. - + Add support for images with specified width. - + Parse image URLs without "guard" and "takeExtension". - + Split link and image parsing into separate functions. - + Parse links starting with "URL:" explicitly instead of trying to strip - "URL:" prefix after parsing. - - * Texinfo writer: Use `@sup` and `@sub` instead of custom macros (#4728, - Alexander Krotov). - - * Markdown writer: Preserve `implicit_figures` with attributes, even if - `implicit_attributes` is not set, by rendering in raw HTML (#4677). - - * Markdown and commonmark/github writers now respect the `emoji` - extension. So, `-f markdown+emoji -t markdown+emoji` now leaves - `:smile:` as `:smile:` rather than converting it to a smile - character. - - * Docx writer: Be sensitive to `toc` in YAML metadata (#4645). - - * ODT/OpenDocument writer: Make internal links work (#4358). - This adds proper bookmarks to the headers with non-null IDs. - - * EPUB writer: Properly escape pagetitle. Previously we weren't - escaping `&` and other XML characters in the pagetitle, so a title - containing a `&` would be invalid. - - * AsciiDoc Writer: Eescape square brackets at start of line (#4545, - Mauro Bieg). - - * RST writer: - - + Don't treat 'example' as a syntax name (#4748). - This fixes conversions from org with example blocks. - + Support `--number-sections` via the `section-numbering` - directive in standalone output. - - * reveal.js writer and template: reuse mathjax URL - provided by the argument to `--mathjax` or the normal pandoc default, - rather than a hard-coded one in the template (#4701). - - * LaTeX writer: - - + Properly handle footnotes in table captions (#4683). - Refactored code from figure captions to use in both places. - + In beamer output, fix single digit column percentage (#4690, Mauro - Bieg). - - * FB2 writer (Alexander Krotov): - - + Convert Plain to Para in annotation (#2424). - + Fix order of items in title-info (#2424). - - * Custom writer: fix error message on script failure (Albert Krewinkel). - Error messages produced by Lua were not displayed by Pandoc. - - * Text.Pandoc.Emoji now exports `emojiToInline`, which returns a Span - inline containing the emoji character and some attributes with metadata - (class `emoji`, attribute `data-emoji` with emoji name). (API change, - Anders Waldenborg, #4743). - - * Text.Pandoc.PDF: - - + Revert fix for #4484 (only compress images on last run, #4755). - This will mean some increase in the time it takes to - produce an image-heavy PDF with xelatex, but it will - make tables of contents correct, which is more important. - + Fix logic error in `runTeXProgram`. We were running the tex program - one more time than requested. This should speed up PDF production. - - * Allow `--template` to take a URL as argument. - - * Text.Pandoc.Highlighting: Add missing re-export of `breezeDark` - highlighting style (#4687, Adrian Sieber, API change). - - * Clarify macOS install in INSTALL.md (#4661). Make the binary package - installer the recommended method, and note that on some older versions of - macOS, homebrew installs from source and takes a lot of disk space - (#4664, Ian). - - * MANUAL: - - + Clarify EPUB linked media (#4756, Mauro Bieg) - + Update manual for "true" YAML values. Now that we're using HsYAML and - YAML 1.2, the valid true values are `true`, `True`, `TRUE`. NOTE! - `y`, `yes`, `on` no longer count as true values. - + Document `-F` as alias for `--filter` (thanks to Gandalf Saxe). - + Update manual on how math is rendered in LaTeX. - + Add proxy description (#4131, Mauro Bieg). - + Clarify that `--toc` requires `--standalone` (#4703). - + Update citation styles link (#4699, wiefling). - - * In API docs, clarify how `Ext_east_asian_line_breaks` extension works - (kaizshang91). Note that it will not take effect when readers/writers - are called as libraries (#4674). - - * Improved translations/fr (#4766, lux-lth). - - * Removed inadvertently added `.orig` files from repository (#4648). - - * Remove `network-uri` flag and use 'Network.Socket'. - This removes a compiler warning. There is no need for the old - `network-uri` flag, since network 2.6 was released in 2014. - - * Add stack.lts10.yaml, stack.lts11.yaml. use lts-12 in stack.yaml. - - * Bump upper bounds for dependent packages. - - * Exclude foundation 0.0.21 for ghc 7.10. Otherwise cabal gets - confused because of the way ghc 7.10 is excluded in foundation's - cabal file. This can be removed when haskell-foundation/foundation#500 - is fixed. - - * Require cabal-version >= 2.0. This is needed for haddock-library. - - -pandoc (2.2.1) - - * Restored and undeprecated gladtex for HTML math (#4607). - - + Added `GladTeX` constructor to `Text.Pandoc.Options.HTMLMathMethod` - [API change, reverts removal in v2.2] - + Restored and undeprecated `--gladtex` option, removed in v2.2. - - * LaTeX reader: Handle `$` in `/text{..}` inside math (#4576). - - * Org reader: Fix image filename recognition (Albert Krewinkel). - Use a function from the filepath library to check whether a string is a - valid file name. The custom validity checker that was used before gave - wrong results (e.g. for absolute file paths on Windows, - kawabata/ox-pandoc#52). - - * FB2 reader: Replace some errors with warnings (Alexander Krotov). - - * HTML writer: - - + Strip links from headers when creating TOC (#4340). - Otherwise the TOC entries will not link to the sections. - + Fix regression with tex math environments in HTML + MathJax (#4639). - - * Muse writer (Alexander Krotov): Add support for left-align and - right-align classes (#4542). - - * Docx writer: Support underline (#4633). - - * Text.Pandoc.Parsing: Lookahead for non-whitespace after - `singleQuoteStart` and `doubleQuoteStart` (#4637). - - * `test-pandoc-utils.lua`: more robust testing on both windows - and \*nix. Previously the pipe tests were only run if - `\bin/false` and `/bin/sed` were present, which they aren't - in default MacOS and Windows systems. Fixed by using `tr` - and `false`, which should always be in the path on a \*nix - system, and `find` and `echo` for Windows. - - * Text.Pandoc.Shared: add `uriPathToPath`. - This adjusts the path from a file: URI in a way that is sensitive - to Windows/Linux differences. Thus, on Windows, - `/c:/foo` gets interpreted as `c:/foo`, but on Linux, - `/c:/foo` gets interpreted as `/c:/foo`. See #4613. - - * Use `uriPathToPath` with file: URIs (#4613). - - * Revert piping HTML to pdf-engine (Mauro Bieg, #4413). Use a temp - file as before. - - * Text.Pandoc.Class: Catch IO errors when writing media files - and issue a warning, rather than an error (Francesco Occhipinti, #4559). - - * Don't lowercase custom writer filename (Alexander Krotov, #4610). - - * MANUAL (Mauro Bieg): - - + Clarify truthiness in template variables (#2281). - + Clarify pipe table width calculation (#4520). - - * ConTeXt template: New Greek fallback typeface (Pablo Rodríguez, #4405). - CMU Serif gives better typographic results than the previous - Greek fallback DejaVu Serif. - - * Make HTML template polyglot (#4606, OvidiusCicero), by making - `<link rel="stylesheet" href="$css$">` self-closing. - - * Use texmath 0.11, allowing better translation of non-ASCII - characters in math (#4642). - -pandoc (2.2) - - * New input format: `fb2` (FictionBook2) (Alexander Krotov). - - * Make `--ascii` work for all XML formats (ICML, OPML, JATS,...), - and for `ms` and `man`. - - * Remove deprecated `--latexmathml`, `--gladtex`, `--mimetex`, `--jsmath`, `-m`, - `--asciimathml` options. - - * New module Text.Pandoc.Readers.FB2, exporting readFB2 (Alexander - Krotov, API change). - - * Markdown reader: - - + Allow empty key-value attributes, like `title=""` (#2944). - + Handle table w/o following blank line in fenced div (#4560). - + Remove "fallback" for `doubleQuote` parser. Previously the - parser tried to be efficient -- if no end double quote was found, - it would just return the contents. But this could backfire in a - case `**this should "be bold**`, since the fallback would return - the content `"be bold**` and the closing boldface delimiter - would never be encountered. - + Improve computation of the relative width of the last column in a - multiline table, so we can round-trip tables without constantly - shrinking the last column. - - * EPUB reader: - - + Fix images with space in file path (#4344). - - * LaTeX reader: - - + Properly resolve section numbers with `\ref` and chapters (#4529). - + Parse sloppypar environment (#4517, Marc Schreiber). - + Improve handling of raw LaTeX (for markdown etc.) (#4589, #4594). - Previously there were some bugs in how macros were handled. - + Support `\MakeUppercase`, `\MakeLowercase', `\uppercase`, `\lowercase`, - and also `\MakeTextUppercase` and `\MakeTextLowercase` from textcase - (#4959). - - * Textile reader: - - + Fixed tables with no body rows (#4513). - Previously these raised an exception. - - * Mediawiki reader: - - + Improve table parsing (#4508). This fixes detection of table - attributes and also handles `!` characters in cells. - - * DocBook reader: - - + Properly handle title in `section` element (#4526). - Previously we just got `section_title` for `section` (though `sect1`, - `sect2`, etc. were handled properly). - + Read tex math as output by asciidoctor (#4569, Joe Hermaszewski). - - * Docx reader: - - + Combine adjacent CodeBlocks with the same attributes into - a single CodeBlock. This prevents a multiline codeblock in - Word from being read as different paragraphs. - - * RST reader: - - + Allow < 3 spaces indent under directives (#4579). - + Fix anonymous redirects with backticks (#4598). - - * Muse reader (Alexander Krotov): - - + Add support for Text::Amuse multiline headings. - + Add `<math>` tag support. - + Add support for `<biblio>` and `<play>` tags. - + Allow links to have empty descriptions. - + Require block `<literal>` tags to be on separate lines. - + Allow `-` in anchors. - + Allow verse to be indented. - + Allow nested footnotes. - + Internal improvements. - - * Muse writer (Alexander Krotov): - - + Escape `>` only at the beginning of a line. - + Escape `]` in image title. - + Escape `]` brackets in URLs as `%5D`. - + Only escape brackets when necessary. - + Escape ordered list markers. - + Do not escape list markers unless preceded by space. - + Escape strings starting with space. - + Escape semicolons and markers after line break. - + Escape `;` to avoid accidental comments. - + Don't break headers, line blocks and tables with line breaks. - + Correctly output empty headings. - + Escape horizontal rule only if at the beginning of the line. - + Escape definition list terms starting with list markers. - + Place header IDs before header. - + Improve span writing. - + Do not join Spans in normalization. - + Don't align ordered list items. - + Remove key-value pairs from attributes before normalization. - + Enable `--wrap=preserve` for all tests by default. - + Reduced `<verbatim>` tags in output. - + Internal changes. - - * RST writer: - - + Use more consistent indentation (#4563). Previously we - used an odd mix of 3- and 4-space indentation. Now we use 3-space - indentation, except for ordered lists, where indentation must - depend on the width of the list marker. - + Flatten nested inlines (#4368, Francesco Occhipinti). - Nested inlines are not valid RST syntax, so we flatten them following - some readability criteria discussed in #4368. - - * EPUB writer: - - + Ensure that `pagetitle` is always set, even when structured titles - are used. This prevents spurious warnings about empty title - elements (#4486). - - * FB2 writer (Alexander Krotov): - - + Output links inline instead of producing notes. Previously all links - were turned into footnotes with unclickable URLs inside. - + Allow emphasis and notes in titles. - + Don't intersperse paragraph with empty lines. - + Convert metadata value `abstract` to book annotation. - + Use `<empty-line />` for `HorizontalRule` rather than `LineBreak`. - FB2 does not have a way to represent line breaks inside paragraphs; - previously we used `<empty-line />` elements, but these are not allowed - inside paragraphs. - - * Powerpoint writer (Jesse Rosenthal): - - + Handle Quoted Inlines (#4532). - + Simplify code with `ParseXml`. - + Allow fallback options when looking for placeholder type. - + Check reference-doc for all layouts. - + Simplify speaker notes logic. - + Change notes state to a simpler per-slide value. - + Remove `Maybe` from `SpeakerNotes` in `Slide`. `mempty` - means no speaker notes. - + Add tests for improved speaker notes. - + Handle speaker notes earlier in the conversion process. - + Keep notes with related blocks (#4477). Some blocks automatically - split slides (imgs, tables, `column` divs). We assume that any - speaker notes immediately following these are connected to these - elements, and keep them with the related blocks, splitting after them. - + Remove `docProps/thumbnail.jpeg` in data dir (Jesse Rosenthal, #4588). - It contained a nonfree ICC color calibration profile and is not needed - for production of a powerpoint document. - - * Markdown writer: - - + Include a blank line at the end of the row in a single-row multiline - table, to prevent it from being interpreted as a simple table (#4578). - - * CommonMark writer: - - + Correctly ignore LaTeX raw blocks when `raw_tex` is not - enabled (#4527, quasicomputational). - - * EPUB writer: - - + Add `epub:type="footnotes"` to notes section in EPUB3 (#4489). - - * LaTeX writer: - - + In beamer, don't use format specifier for default ordered lists - (#4556). This gives better results for styles that put ordered list - markers in boxes or circles. - + Update `\lstinline` delimiters (#4369, Tim Parenti). - - * Ms writer: - - + Use `\f[R]` rather than `\f[]` to reset font (#4552). - + Use `\f[BI]` and `\f[CB]` in headers, instead of `\f[I]` and `\f[C]`, - since the header font is automatically bold (#4552). - + Use `\f[CB]` rather than `\f[BC]` for monospace bold (#4552). - + Create pdf anchor for a Div with an identifier (#4515). - + Escape `/` character in anchor ids (#4515). - + Improve escaping for anchor ids: we now use _uNNN_ instead of uNNN - to avoid ambiguity. - - * Man writer: - - + Don't escape U+2019 as `'` (#4550). - - * Text.Pandoc.Options: - - + Removed `JsMath`, `LaTeXMathML`, and `GladTeX` constructors from - `Text.Pandoc.Options.HTMLMathMethod` [API change]. - - * Text.Pandoc.Class: - - + `writeMedia`: unescape URI-escaping in file path. This avoids - writing things like `file%20one.png` to the file system. - - * Text.Pandoc.Parsing: - - + Fix `romanNumeral` parser (#4480). We previously accepted 'DDC' - as 1100. - + `uri`: don't treat `*` characters at end as part of URI (#4561). - - * Text.Pandoc.MIME: - - + Use the alias `application/eps` for EPS (#2067). - This will ensure that we retain the eps extension after reading the - image into a mediabag and writing it again. - - * Text.Pandoc.PDF: - - + Use `withTempDir` in `html2pdf`. - + With `xelatex`, don't compress images til the last run (#4484). - This saves time for image-heavy documents. - + Don't try to convert EPS files (#2067). `pdflatex` converts them - itself, and JuicyPixels can't do it. - + For `pdflatex`, use a temp directory in the working directory. - Otherwise we can have problems with the EPS conversion pdflatex - tries to do, which can't operate on a file above the working - directory without `--shell-escape`. - - * Changes to tests to accommodate changes in pandoc-types. - In <https://github.com/jgm/pandoc-types/pull/36> we changed - the table builder to pad cells. This commit changes tests - (and two readers) to accord with this behavior. - - * Set default extensions for `beamer` same as `latex`. - - * LaTeX template: - - + Add `beameroption` variable (#4359, Étienne Bersac). - + Use `pgfpages` package; this is needed for notes on second - screen in beamer (Étienne Bersac). - + Add `background-image` variable (#4601, John Muccigrosso). - - * reveal.js template: Add `background-image` variable (#4600, - John Muccigrosso). - - * ms template: Fix date. Previously `.ND` was used, but this only - works if you have a title page, which we don't. Thanks to @teoric. - - * Removed pragmas for unused extensions (#4506, Anabra). - - * Fix bash completion for `--print-default-data-file` (#4549). - Previously this looked in the filesystem, even if pandoc - was compiled with `embed_data_files` (and sometimes it looked - in a nonexistent build directory). Now the bash completion - script just includes a hard-coded list of data file names. - - * MANUAL: - - + Clarify template vs metadata variables (#4501, Mauro Bieg). - + Fix raw content example (#4479, Mauro Bieg). - + Specify that you use html for raw output in epub. - + Add examples for raw docx blocks (#4472, Tristan Stenner). - The documentation states that the target format name should match - the output format, which isn't the case for `docx`/`openxml` and - some others. - + Don't say that `empty_paragraphs` affects markdown output (#4540). - + Consolidate input/output format documentation (#4577, Mauro Bieg). - - * New README template. Take in/out formats from manual. - - * Fix example in lua-filters docs (#4459, HeirOfNorton). - - * Use the `-threaded` GHC flag when building benchmarks (#4587, - Francesco Occhipinti). - - * Bump temporary upper bound to 1.4. - - * Use pandoc-citeproc 0.14.3.1. - - * Use texmath-0.10.1.2 (fixes escapes in math in ms, #4597). - - * Removed old lib directory. This was used for something long ago, - but plays no role now. - - * Removed unneeded data file `LaTeXMathML.js`. - - * Create 64- and 32-bit versions of Windows binary packages. - -pandoc (2.1.3) - - * Docx reader (Jesse Rosenthal): - - + Add tests for nested smart tags. - + Parse nested smart tags. - + Make unwrapSDT into a general `unwrap` function that can unwrap both - nested SDT tags and smartTags. This makes the SmartTags constructor in - the Docx type unnecessary, so we remove it (#4446). - + Remove unused `docxWarnings` (Alexander Krotov). - - * RST reader: Allow unicode bullet characters (#4454). - - * Haddock reader: Better table handling, using haddock-library's - new table support, if compiled against a version that - includes it. Note that tables with col/rowspans will not - translate well into Pandoc. - - * Muse reader (Alexander Krotov): - - + Require closing tag to have the same indentation as opening. - + Do not reparse blocks inside unclosed block tag (#4425). - + Parse `<class>` tag (supported by Emacs Muse). - + Do not produce empty Str element for unindented verse lines. - + Don't allow footnote references inside links. - + Allow URL to be empty. - + Require that comment semicolons are in the first column (#4551). - + Various internal improvements. - - * LaTeX reader: - - + Add support to parse unit string of `\SI` command (closes #4296, - Marc Schreiber). - - * Haddock writer: In the writer, we now render tables always as - grid tables, since Haddock supports these. - - * DokuWiki writer: rewrite backSlashLineBreaks (#4445, Mauro Bieg). - - * Docx writer: Fixed formatting of `DefaultStyle` ordered lists in - docx writer. We want decimal for the top level, not lower roman. - - * RST writer: - - + Strip whitespace at beginning and ending of inline containers - (#4327, Francesco Occhipinti). - + Filter out empty inline containers (#4434). There is nothing in - RST that corresponds to e.g. `Emph []`, so we just ignore elements - like this (Francesco Occhipinti). - - * Muse writer (Alexander Krotov): - - + Support spans with anchors. - + Replace smallcaps with emphasis before normalization. - + Output smallcaps as emphasis. - + Expand Cite before list normalization. - + Write empty inline lists as `<verbatim></verbatim>`. - + Remove empty Str from the beginning of inline lists during normalization. - + Escape "-" to avoid creating bullet lists. - + Fix math expansion for more than one expression per paragraph. - + Expand math before inline list normalization. - - * Dokuwiki writer: fix LineBreaks in Tables (#4313, Mauro Bieg). - - * Ms writer: - - + Asciify pdf anchors, since unicode anchors don't work (#4436). - Internal links should be converted automatically, so this shouldn't - affect users directly. - + Don't escape hyphens as `\-`; that's for a minus sign (#4467). - - * Beamer writer: put hyperlink after `\begin{frame}` and not in the title - (#4307). If it's in the title, then we get a titlebar on slides with - the `plain` attribute, when the id is non-null. This fixes a regression - in 2.0. - - * EPUB writer: Remove notes from TOC in nav.xhtml (#4453, Mauro Bieg). - - * JATS writer: Remove extraneous, significant whitespace (#4335, - Nokome Bentley). - - * html2pdf: inject base tag with current working directory (#4413, Mauro - Bieg). This helps ensure that linked resources are included. - - * Add Semigroup instances for everything for which we defined a - Monoid instance previously (API change): - - + Text.Pandoc.Class.FileTree. - + Text.Pandoc.Translations.Translations. - + Text.Pandoc.Extensions.Extensions. - + Text.Pandoc.Readers.Odt.StyleReader.Styles. - + Text.Pandoc.Pretty.Doc. - + Text.Pandoc.MediaBag.MediaBag. - - * Add custom Prelude to give clean code for Monoid and Semigroup - that works with ghc 7.10-8.4. The custom Prelude (`prelude/Prelude`) - is used for ghc versions < 8.4. `NoImplicitPrelude` is used - in all source files, and Prelude is explicitly imported - (this is necessary for ghci to work properly with the custom prelude). - - * Text.Pandoc.Writers.Shared (Francesco Occhipinti): - - + Export `stripLeadingTrailingSpace`. - + Don't wrap lines in grid tables when `--wrap=none` (#4320). - + `gridTable`: Don't wrap lines in tables when `--wrap=none`. Instead, - expand cells, even if it results in cells that don't respect relative - widths or surpass page column width. This change affects RST, - Markdown, and Haddock writers. - - * Raise error if someone tries to print docx, odt, etc. template (#4441). - - * LaTeX template: Provide `bidi` package's option using - `\PassOptionsToPackage` (#4357, Václav Haisman). This avoid a - clash when `polyglossia` loads it first and then it is loaded again - for XeLaTeX. - - * ConTeXt template: Added `pdfa` variable to generate PDF/A (#4294, Henri - Menke). Instructions on how to install the ICC profiles on ConTeXt - standalone can be found in the wiki: - <http://wiki.contextgarden.net/PDFX#ICC_profiles>. - If the ICC profiles are not available the log will contain error - messages. - - * Use latest pandoc-types, skylighting - - * Use latest pandoc-citeproc in binary package. - - * Bump upper bound for time, criterion, haddock-library, exceptions, - http-types, aeson, haddock-library. - - * Bump upper bound tasty-quickcheck 0.10 (#4429, Felix Yan). - - * pandoc.cabal: fix up other-extensions and language fields. - Language is now consistently `Haskell2010`, and other-extensions - is consistently `NoImplicitPrelude`. Everything else to be specified - in the module header as needed. - - * Removed `old-locale` flag and Text.Pandoc.Compat.Time. - This is no longer necessary since we no longer support ghc 7.8. - - * Make `weigh-pandoc` into a benchmark program. - Remove `weigh-pandoc` flag. `weigh-pandoc` is now built (and run) - automatically when you build (and run) benchmarks. - - * MANUAL: add instructions for background images reveal.js (#4325, John - Muccigrosso). - - * appveyor: use VS 2013 environment instead of VS 2015 for Windows builds. - - -pandoc (2.1.2) - - * Markdown reader: - - + Fix parsing bug with nested fenced divs (#4281). Previously we allowed - "nonindent spaces" before the opening and closing `:::`, but this - interfered with list parsing, so now we require the fences to be flush with - the margin of the containing block. - - * Commonmark reader: - - + `raw_html` is now on by default. It can be disabled explicitly - using `-f commonmark-raw_html`. - - * Org reader (Albert Krewinkel): - - + Move citation tests to separate module. - + Allow changing emphasis syntax (#4378). The characters allowed before - and after emphasis can be configured via `#+pandoc-emphasis-pre` and - `#+pandoc-emphasis-post`, respectively. This allows to change which - strings are recognized as emphasized text on a per-document or even - per-paragraph basis. Example: - - #+pandoc-emphasis-pre: "-\t ('\"{" - #+pandoc-emphasis-post: "-\t\n .,:!?;'\")}[" - - * LaTeX reader: - - + Fixed comments inside citations (#4374). - + Fix regression in package options including underscore (#4424). - + Make `--trace` work. - + Fixed parsing of `tabular*` environment (#4279). - - * RST reader: - - + Fix regression in parsing of headers with trailing space (#4280). - - * Muse reader (Alexander Krotov): - - + Enable `<literal>` tags even if amuse extension is enabled. - Amusewiki disables <literal> tags for security reasons. - If user wants similar behavior in pandoc, RawBlocks and RawInlines - can be removed or replaced with filters. - + Remove space prefix from `<literal>` tag contents. - + Do not consume whitespace while looking for closing end tag. - + Convert alphabetical list markers to decimal in round-trip test. - Alphabetical lists are an addition of Text::Amuse. - They are not present in Emacs Muse and can be ambiguous - when list starts with "i.", "c." etc. - + Allow `<quote>` and other tags to be indented. - + Allow single colon in definition list term. - + Fix parsing of verse in lists. - + Improved parsing efficiency. Avoid `parseFromString`. - Lists are parsed in linear instead of exponential time now. - + Replace ParserState with MuseState. - + Prioritize lists with roman numerals over alphabetical lists. - This is to make sure "i." starts a roman numbered list, - instead of a list with letter "i" (followed by "j", "k", ..."). - + Fix directive parsing. - + Parse definition lists with multiple descriptions. - + Parse next list item before parsing more item contents. - + Fixed a bug: headers did not terminate lists. - + Move indentation parsing from `definitionListItem` to `definitionList`. - + Paragraph indentation does not indicate nested quote. - Muse allows indentation to indicate quotation or alignment, - but only on the top level, not within a <quote> or list. - + Require that block tags are on separate lines. - Text::Amuse already explicitly requires it anyway. - + Fix matching of closing inline tags. - + Various internal changes. - + Fix parsing of nested definition lists. - + Require only one space for nested definition list indentation. - + Do not remove trailing whitespace from `<code>`. - + Fix parsing of trailing whitespace. Newline after whitespace now - results in softbreak instead of space. - - * Docx reader (Jesse Rosenthal, except where noted): - - + Handle nested sdt tags (#4415). - + Don't look up dependent run styles if `+styles` is enabled. - + Move pandoc inline styling inside custom-style span. - + Read custom styles (#1843). This will read all paragraph and - character classes as divs and spans, respectively. Dependent styles - will still be resolved, but will be wrapped with appropriate style - tags. It is controlled by the `+styles` extension (`-f docx+styles`). - This can be used in conjunction with the `custom-style` feature in the - docx writer for a pandoc-docx editing workflow. Users can convert from - an input docx, reading the custom-styles, and then use that same input - docx file as a reference-doc for producing an output docx file. Styles - will be maintained across the conversion, even if pandoc doesn't - understand them. - + Small change to Fields hyperlink parser. Previously, unquoted string - required a space at the end of the line (and consumed it). Now we - either take a space (and don't consume it), or end of input. - + Pick table width from the longest row or header (Francesco Occhipinti, - #4360). - - * Muse writer (Alexander Krotov): - - + Change verse markup: `> ` instead of `<verse>` tag. - + Remove empty strings during inline normalization. - + Don't indent nested definition lists. - + Use unicode quotes for quoted text. - + Write image width specified in percent in Text::Amuse mode. - + Don't wrap displayMath into `<verse>`. - + Escape nonbreaking space (`~~`). - + Join code with different attributes during normalization. - + Indent lists inside Div. - + Support definitions with multiple descriptions. - - * Powerpoint writer (Jesse Rosenthal): - - + Use table styles This will use the default table style in the - reference-doc file. As a result they will be easier when using - in a template, and match the color scheme. - + Remove empty slides. Because of the way that slides were split, these - could be accidentally produced by comments after images. When animations - are added, there will be a way to add an empty slide with either - incremental lists or pauses. - + Implement syntax highlighting. Note that background colors can't - be implemented in PowerPoint, so highlighting styles that require - these will be incomplete. - + New test framework for pptx. We now compare the output of the - Powerpoint writer with files that we know to (a) not be corrupt, - and (b) to show the desired output behavior (details below). - + Add `notesMaster` to `presentation.xml` if necessary. - + Ignore links and (end)notes in speaker notes. - + Output speaker notes. - + Read speaker note templates conditionally. If there are speaker - notes in the presentation, we read in the notesMasters templates - from the reference pptx file. - + Fix deletion track changes (#4303, Jesse Rosenthal). - - * Markdown writer: properly escape @ to avoid capture as citation - (#4366). - - * LaTeX writer: - - + Put hypertarget inside figure environment (#4388). - This works around a problem with the endfloat package and - makes pandoc's output compatible with it. - + Fix image height with percentage (#4389). This previously caused - the image to be resized to a percentage of textwidth, rather than - textheight. - - * ConTeXt writer (Henri Menke): - - + New section syntax and support `--section-divs` (#2609). - `\section[my-header]{My Header}` -> - `\section[title={My Header},reference={my-header}]`. - The ConTeXt writer now supports the `--section-divs` option to - write sections in the fenced style, with `\startsection` and - `\stopsection`. - + xtables: correct wrong usage of caption (Henri Menke). - - * Docx writer: - - + Fix image resizing with multiple images (#3930, Andrew Pritchard). - + Use new golden framework (Jesse Rosenthal). - + Make more deterministic to facilitate testing (Jesse Rosenthal). - - `getUniqueId` now calls to the state to get an incremented digit, - instead of calling to P.uniqueHash. - - we always start the PRNG in mkNumbering/mkAbstractNum with the same - seed (1848), so our randoms should be the same each time. - + Fix ids in comment writing (Jesse Rosenthal). Comments from - `--track-changes=all` were producing corrupt docx, because the - writer was trying to get id from the `(ID,_,_)` field of - the attributes, and ignoring the "id" entry in the key-value pairs. We - now check both. - - * Ms writer: Added papersize variable. - - * TEI writer: - - + Use `height` instead of `depth` for images (#4331). - + Ensure that id prefix is always used. - + Don't emit `role` attribute; that was a leftover from the - Docbook writer. - + Use 'xml:id', not 'id' attribute (#4371). - - * AsciiDoc writer: - - + Do not output implicit heading IDs (#4363, Alexander - Krotov). Convert to `asciidoc-auto_identifiers` for old behaviour. - - * RST writer: - - + Remove `blockToRST'` moving its logic into `fixBlocks` - (Francesco Occhipinti). - + Insert comment between lists and quotes (#4248, Francesco Occchipinti). - - * RST template: remove definition of 'math' role as raw. - This used to be needed prior to v 0.8 of docutils, but - now math support is built-in. - - * Slides: Use divs to set incremental/non-incremental (#4381, - Jesse Rosenthal). The old method (list inside blockquote) still - works, but we are encouraging the use of divs with class - `incremental` or `nonincremental`. - - * Text.Pandoc.ImageSize: - - + Make image size detection for PDFs more robust (#4322). - + Determine image size for PDFs (#4322). - + EMF Image size support (#4375, Andrew Pritchard). - - * Text.Pandoc.Extensions: - - + Add `Ext_styles` (Jesse Rosenthal, API change). This will be used in - the docx reader (defaulting to off) to read pargraph and character - styles not understood by pandoc (as divs and spans, respectively). - + Made `Ext_raw_html` default for `commonmark` format. - - * Text.Pandoc.Parsing: - - + Export `manyUntil` (Alexander Krotov, API change). - + Export improved `sepBy1` (Alexander Krotov). - + Export list marker parsers: `upperRoman`, `lowerRoman`, - `decimal`, `lowerAlpha`, `upperAlpha` (Alexander Krotov, API change). - - * Tests/Lua: fix tests on windows (Albert Krewinkel). - - * Lua: register script name in global variable (#4393). The name of the Lua - script which is executed is made available in the global Lua variable - `PANDOC_SCRIPT_FILE`, both for Lua filters and custom writers. - - * Tests: Abstract powerpoint tests out to OOXML tests (Jesse Rosenthal). - There is very little pptx-specific in these tests, so we abstract out - the basic testing function so it can be used for docx as well. This - should allow us to catch some errors in the docx writer that slipped - by the roundtrip testing. - - * Lua filters: store constructors in registry (Albert Krewinkel). Lua - functions used to construct AST element values are stored in the Lua - registry for quicker access. Getting a value from the registry is much - faster than getting a global value (partly to idiosyncrasies of hslua); - this change results in a considerable performance boost. - - * Documentation: - - + `doc/org.md` Add draft of Org-mode documentation (Albert Krewinkel). - + `doc/lua-filters.md`: document global vars set for filters - (Albert Krewinkel). - + INSTALL.md: mention Stack version. (#4343, Adam Brandizzi). - + MANUAL: add documentation on custom styles (Jesse Rosenthal). - + MANUAL.txt: Document incremental and nonincremental divs (Jesse - Rosenthal). Blockquoted lists are still described, but fenced divs are - presented in preference. - + MANUAL.txt: document header and footer variables (newmana). - + MANUAL.txt: self-contained implies standalone (#4304, Daniel Lublin). - + CONTRIBUTING.md: label was renamed. (#4310, Alexander Brandizzi). - - * Require tagsoup 0.14.3 (#4282), fixing HTML tokenization bug. - - * Use latest texmath. - - * Use latest pandoc-citeproc. - - * Allow exceptions 0.9. - - * Require aeson-pretty 0.8.5 (#4394). - - * Bump blaze-markup, blaze-html lower bounds to 0.8, 0.9 (#4334). - - * Update tagsoup to 0.14.6 (Alexander Krotov, #4282). - - * Removed ghc-prof-options. As of cabal 1.24, sensible defaults are used. - - * Update default.nix to current nixpkgs-unstable for hslua-0.9.5 (#4348, - jarlg). - - -pandoc (2.1.1) - - * Markdown reader: - - + Don't coalesce adjacent raw LaTeX blocks if they are separated by a - blank line. See lierdakil/pandoc-crossref#160. - + Improved `inlinesInBalancedBrackets` (#4272, jgm/pandoc-citeproc#315). - The change both improves performance and fixes a regression whereby - normal citations inside inline notes and figure captions were not - parsed correctly. - - * RST reader: - - + Better handling for headers with an anchor (#4240). Instead of creating a - Div containing the header, we put the id directly on the header. - This way header promotion will work properly. - + Add aligned environment when needed in math (#4254). `rst2latex.py` - uses an `align*` environment for math in `.. math::` blocks, so this - math may contain line breaks. If it does, we put the math in an - `aligned` environment to simulate `rst2latex.py`'s behavior. - - * HTML reader: - - + Fix col width parsing for percentages < 10% (#4262, n3fariox). - - * LaTeX reader: - - + Advance source position at end of stream. - + Pass through macro defs in `rawLaTeXBlock` even if the `latex_macros` - extension is set (#4246). This reverts to earlier behavior and is - probably safer on the whole, since some macros only modify things in - included packages, which pandoc's macro expansion can't modify. - + Fixed pos calculation in tokenizing escaped space. - + Allow macro definitions inside macros (#4253). Previously we went into - an infinite loop with - ``` - \newcommand{\noop}[1]{#1} - \noop{\newcommand{\foo}[1]{#1}} - \foo{hi} - ``` - + Fix inconsistent column widths (#4238). This fixes a bug whereby column - widths for the body were different from widths for the header in some - tables. - - * Docx reader (Jesse Rosenthal): - - + Parse hyperlinks in `instrText` tags (#3389, #4266). This was a form of - hyperlink found in older versions of word. The changes introduced for - this, though, create a framework for parsing further fields in MS Word - (see the spec, ECMA-376-1:2016, §17.16.5, for more on these fields). - We introduce a new module, `Text.Pandoc.Readers.Docx.Fields` which - contains a simple parsec parser. At the moment, only simple hyperlink - fields are accepted, but that can be extended in the future. - - * Muse reader (Alexander Krotov): - - + Parse `~~` as non-breaking space in Text::Amuse mode. - + Refactor list parsing. - - * Powerpoint writer (Jesse Rosenthal): - - + Change reference to `notesSlide` to `endNotesSlide`. - + Move image sizing into `picProps`. - + Improve table placement. - + Make our own `_rels/.rels` file. - + Import reference-doc images properly. - + Move `Presentation.hs` out of `PandocMonad`. - + Refactor into separate modules. T.P.W.Powerpoint.Presentation - defines the Presentation datatype and goes Pandoc->Presentation; - T.P.W.Pandoc.Output goes Presentation->Archive. - Text.Pandoc.Writers.Powerpoint a thin wrapper around the two modules. - + Avoid overlapping blocks in column output. - + Position images correctly in two-column layout. - + Make content shape retrieval environment-aware. - + Improve image handling. We now determine image and caption placement - by getting the dimensions of the content box in a given layout. - This allows for images to be correctly sized and positioned in a - different template. Note that images without captions and headers are - no longer full-screened. We can't do this dependably in different - layouts, because we don't know where the header is (it could be to - the side of the content, for example). - + Read presentation size from reference file. Our presentation size is - now dependent on the reference/template file we use. - + Handle (sub)headers above slidelevel correctly. Above the slidelevel, - subheaders will be printed in bold and given a bit of extra space - before them. Note that at the moment, no distinction is made between - levels of headers above the slide header, though that can be changed. - + Check for required files. Since we now import from reference/dist - file by glob, we need to make sure that we're getting the files we - need to make a non-corrupt Powerpoint. This performs that check. - + Improve templating using `--reference-doc`. Templating should work - much more reliably now. - + Include Notes slide in TOC. - + Set notes slide header to slide-level. - + Add table of contents. This is triggered by the `--toc` flag. Note - that in a long slide deck this risks overrunning the text box. The user - can address this by setting `--toc-depth=1`. - + Set notes slide number correctly. - + Clean up adding metadata slide. We want to count the slide numbers - correctly if it's in there. - + Add anchor links. For anchor-type links (`[foo](#bar)`) we produce - an anchor link. In powerpoint these are links to slides, so we keep - track of a map relating anchors to the slides they occur on. - + Make the slide number available to the blocks. For anchors, - block-processing functions need to know what slide number - they're in. We make the `envCurSlideId` available to blocks. - + Move `curSlideId` to environment. - + Allow setting `toc-title` in metadata. - + Link notes to endnotes slide. - - * Markdown writer: - - + Fix cell width calculation (#4265). Previously we could get - ever-lengthening cell widths when a table was run repeatedly through - `pandoc -f markdown -t markdown`. - - * LaTeX writer: - - + Escape `&` in lstinline (Robert Schütz). - - * ConTeXt writer: - - + Use xtables instead of Tables (#4223, Henri Menke). - Default to xtables for context output. Natural Tables are used - if the new `ntb` extension is set. - - * HTML writer: - - + Fixed footnote backlinks with `--id-prefix` (#4235). - - * `Text.Pandoc.Extensions`: Added `Ext_ntb` constructor (API change, - Henri Menke). - - * `Text.Pandoc.ImageSize`: add derived `Eq` instance to `Dimension` - (Jesse Rosenthal, API change). - - * Lua filters (Albert Krewinkel): - - + Make `PANDOC_READER_OPTIONS` available. - The options which were used to read the document are made available to - Lua filters via the `PANDOC_READER_OPTIONS` global. - + Add lua module `pandoc.utils.run_json_filter`, which runs a JSON filter - on a Pandoc document. - + Refactor filter-handling code into `Text.Pandoc.Filter.JSON`, - `Text.Pandoc.Filter.Lua`, and `Text.Pandoc.Filter.Path`. - + Improve error messages. Provide more context about the task - which caused an error. - - * data/pandoc.lua (Albert Krewinkel): - - + Accept singleton inline as a list. Every constructor which accepts a - list of inlines now also accepts a single inline element for - convenience. - + Accept single block as singleton list. Every constructor which accepts - a list of blocks now also accepts a single block element for - convenience. Furthermore, strings are accepted as shorthand for - `{pandoc.Str "text"}` in constructors. - + Add attr, listAttributes accessors. Elements with - attributes got an additional `attr` accessor. Attributes were - accessible only via the `identifier`, `classes`, and `attributes`, - which was in conflict with the documentation, which indirectly states - that such elements have the an `attr` property. - + Drop `_VERSION`. Having a `_VERSION` became superfluous, as this - module is closely tied to the pandoc version, which is available via - `PANDOC_VERSION`. - + Fix access to Attr components. Accessing an Attr value (e.g., - ` Attr().classes`) was broken; the more common case of accessing it via - an Inline or Block element was unaffected by this. - - * Move `metaValueToInlines` to from Docx writer to - `Text.Pandoc.Writers.Shared`, so it can be used by other writers - (Jesse Rosenthal). - - * MANUAL.txt: - - + Clarify otherlangs in LaTeX (#4072). - + Clarify `latex_macros` extension. - + Recommend use of `raw_attribute` extension in header includes (#4253). - - * Allow latest QuickCheck, tasty, criterion. - - * Remove custom prelude and ghc 7.8 support. - - * Reduce compiler noise (exact paths for compiled modules). - -pandoc (2.1) - - * Allow filters and lua filters to be interspersed (#4196). Previously - we ran all lua filters before JSON filters. Now we run filters in - the order they are presented on the command line, whether lua or JSON. - There are two incompatible API changes: The type of `applyFilters` - has changed, and `applyLuaFilters` has been removed. `Filter` is - also now exported. - - * Use latest skylighting and omit the `missingIncludes` check, fixing - a major performance regression in earlier releases of the 2.x series - (#4226). Behavior change: If you use a custom syntax definition that - refers to a syntax you haven't loaded, pandoc will now complain when - it is highlighting the text, rather than doing a check at the start. - This change dramatically speeds up invocations of pandoc on short - inputs. - - * Text.Pandoc.Class: make `FileTree` opaque (don't export - `FileTree` constructor). This forces users to interact with it using - `insertInFileTree` and `getFileInfo`, which normalize file names. - - * Markdown reader: - - + Rewrite `inlinesInBalancedBrackets`. The rewrite is much more - direct, avoiding `parseFromString`. And it performs significantly - better; unfortunately, parsing time still increases exponentially - (see #1735). - + Avoid parsing raw tex unless `\` + letter seen. This seems to - help with the performance problem, #4216. - - * LaTeX reader: Simplified a check for raw tex command. - - * Muse reader (Alexander Krotov): - - + Enable round trip test (#4107). - + Automatically translate `#cover` into `#cover-image`. - Amusewiki uses #cover directive to specify cover image. - - * Docx reader (Jesse Rosenthal): - - + Allow for insertion/deletion of paragraphs (#3927). - If the paragraph has a deleted or inserted paragraph break (depending - on the track-changes setting) we hold onto it until the next - paragraph. This takes care of accept and reject. For this we introduce - a new state which holds the ils from the previous para if necessary. - For `--track-changes=all`, we add an empty span with class - `paragraph-insertion`/`paragraph-deletion` at the end of the paragraph - prior to the break to be inserted or deleted. - + Remove unused anchors (#3679). Docx produces a lot of anchors with - nothing pointing to them---we now remove these to produce cleaner - output. Note that this has to occur at the end of the process - because it has to follow link/anchor rewriting. - + Read multiple children of `w:sdtContents`. - + Combine adjacent anchors. There isn't any reason to have numerous - anchors in the same place, since we can't maintain docx's - non-nesting overlapping. So we reduce to a single anchor. - + Improved tests. - - * Muse writer (Alexander Krotov): don't escape URIs from AST - - * Docx writer: - - + Removed redundant subtitle in title (Sebastian Talmon). - + `firstRow` table definition compatibility for Word 2016 (Sebastian - Talmon). Word 2016 seems to use a default value of "1" for table - headers, if there is no firstRow definition (although a default - value of 0 is documented), so all tables get the first Row formatted - as header. Setting the parameter to 0 if the table has no header - row fixes this for Word 2016 - + Fix custom styles with spaces in the name (#3290). - - * Powerpoint writer (Jesse Rosenthal): - - + Ignore Notes div for parity with other slide outputs. - + Set default slidelevel correctly. We had previously defaulted to - slideLevel 2. Now we use the correct behavior of defaulting to the - highest level header followed by content. We change an expected test - result to match this behavior. - + Split blocks correctly for linked images. - + Combine adjacent runs. - + Make inline code inherit code size. Previously (a) the code size - wasn't set when we force size, and (b) the properties was set from - the default, instead of inheriting. - + Simplify `replaceNamedChildren` function. - + Allow linked images. The following markdown: - `[![Image Title](image.jpg)](http://www.example.com)` - will now produce a linked image in the resulting PowerPoint file. - + Fix error with empty table cell. We require an empty `<a:p>` tag, - even if the cell contains no paragraphs---otherwise PowerPoint - complains of corruption. - + Implement two-column slides. This uses the columns/column div - format described in the pandoc manual. At the moment, only two - columns (half the screen each) are allowed. Custom widths are not - supported. - + Added more tests. - - * OpenDocument/ODT writers: improved rendering of formulas (#4170, oltolm). - - * Lua filters (Albert Krewinkel): - - + `data/pandoc.lua`: drop 'pandoc-api-version' from Pandoc objects - + The current pandoc-types version is made available to Lua programs in - the global `PANDOC_API_VERSION`. It contains the version as a list of - numbers. - + The pandoc version available as a global `PANDOC_VERSION` (a list - of numbers). - + `data/pandoc.lua`: make `Attr` an `AstElement`. - + `data/pandoc.lua`: make all types subtypes of `AstElement`. - `Pandoc`, `Meta`, and `Citation` were just plain functions and did - not set a metatable on the returned value, which made it difficult - to amend objects of these types with new behavior. They are now - subtypes of AstElement, meaning that all their objects can gain - new features when a method is added to the behavior object - (e.g., `pandoc.Pandoc.behavior`). - + `data/pandoc.lua`: split type and behavior tables. Clearly distinguish - between a type and the behavioral properties of an instance of that - type. The behavior of a type (and all its subtypes) can now be - amended by adding methods to that types `behavior` object, without - exposing the type objects internals. E.g.: - ```lua - pandoc.Inline.behavior.frob = function () print'42' end - local str = pandoc.Str'hello' - str.frob() -- outputs '42' - ``` - + `data/pandoc.lua`: fix Element inheritance. Extending all elements - of a given type (e.g., all inline elements) was difficult, as the - table used to lookup unknown methods would be reset every time a - new element of that type was created, preventing recursive property - lookup. This is was changed in that all methods and attributes of - supertypes are now available to their subtypes. - + `data/pandoc.lua`: fix attribute names of Citation (#4222). The - fields were named like the Haskell fields, not like the documented, - shorter version. The names are changed to match the documentation - and Citations are given a shared metatable to enable simple - extensibility. - + `data/pandoc.lua`: drop function `pandoc.global_filter`. - + Bump `hslua` version to 0.9.5. This version fixes a bug that made it - difficult to handle failures while getting lists or a Map from Lua. - A bug in pandoc, which made it necessary to always pass a tag when - using MetaList or MetaBlock, is fixed as a result. Using the pandoc - module's constructor functions for these values is now optional - (if still recommended). - + Stop exporting `pushPandocModule` (API change). The introduction - of `runPandocLua` renders direct use of this function obsolete. - + Update generation of module docs for lua filters. - + `Lua.Module.Utils`: make stringify work on `MetaValues` (John - MacFarlane). I'm sure this was intended in the first place, - but currently only `Meta` is supported. - - * Improve benchmarks. - - + Set the default extensions properly. - + Improve benchmark argument parsing. You can now say - `make bench BENCHARGS="markdown latex reader"` and both the - markdown and latex readers will be benchmarked. - - * MANUAL.txt simplify and add more structure (Mauro Bieg). - - * Generate README.md from template and MANUAL.txt. - `make README.md` will generate the README.md after changes - to MANUAL.txt have been made. - - * Update copyright notices to include 2018 (Albert Krewinkel). - -pandoc (2.0.6) - - * Added `jats` as an input format. - - + Add Text.Pandoc.Readers.JATS, exporting `readJATS` (API - change) (Hamish Mackenzie). - + Improved citation handling in JATS reader. JATS citations - are now converted to pandoc citations, and JATS ref-lists - are converted into a `references` field in metadata, suitable - for use with pandoc-citeproc. Thus a JATS article with embedded - bibliographic information can be processed with pandoc and - pandoc-citeproc to produce a formatted bibliography. - - * Allow `--list-extensions` to take an optional FORMAT argument. - This lists the extensions set by default for the selected FORMAT. - The extensions are now alphabetized, and the `+` or `-` - indicating the default setting comes before, rather than after, - the extension. - - * Markdown reader: - - + Preserve original whitespace between blocks. - + Recognize `\placeformula` as context. - + Be pickier about table captions. A caption starts with a `:` which - can't be followed by punctuation. Otherwise we can falsely interpret - the start of a fenced div, or even a table header line like - `:--:|:--:`, as a caption. - + Always use four space rule for example lists. It would be awkward - to indent example list contents to the first non-space character after - the label, since example list labels are often long. Thanks to - Bernhard Fisseni for the suggestion. - + Improve raw tex parsing. Note that the Markdown reader is also - affected by the `latex_macros` extension changes described below - under the LaTeX reader. - - * LaTeX reader: - - + `latex_macros` extension changes (#4179). Don't pass through macro - definitions themselves when `latex_macros` is set. The macros - have already been applied. If `latex_macros` is enabled, then - `rawLaTeXBlock` in Text.Pandoc.Readers.LaTeX will succeed in parsing - a macro definition, and will update pandoc's internal macro map - accordingly, but the empty string will be returned. - + Export `tokenize`, `untokenize` (API change). - + Use `applyMacros` in `rawLaTeXBlock`, `rawLaTeXInline`. - + Refactored `inlineCommand`. - + Fix bug in tokenizer. Material following `^^` was - dropped if it wasn't a character escape. This only affected - invalid LaTeX, so we didn't see it in the wild, but it appeared - in a QuickCheck test failure. - + Fix regression in LateX tokenization (#4159). This mainly affects the - Markdown reader when parsing raw LaTeX with escaped spaces. - + Add tests of LaTeX tokenizer. - + Support `\foreignlanguage` from babel. - + Be more tolerant of `&` character (#4208). This allows us to parse - unknown tabular environments as raw LaTeX. - - * Muse reader (Alexander Krotov): - - + Parse anchors immediately after headings as IDs. - + Require that note references does not start with 0. - + Parse empty comments correctly. - - * Org reader (Albert Krewinkel): - - + Fix asterisks-related parsing error (#4180). - + Support minlevel option for includes (#4154). The level of headers - in included files can be shifted to a higher level by specifying a - minimum header level via the `:minlevel` parameter. E.g. - `#+include: "tour.org" :minlevel 1` will shift the headers in - tour.org such that the topmost headers become level 1 headers. - + Break-up org reader test file into multiple modules. - - * OPML reader: - - + Enable raw HTML and other extensions by default for notes - (#4164). This fixes a regression in 2.0. Note that extensions can - now be individually disabled, e.g. `-f opml-smart-raw_html`. - - * RST reader: - - + Allow empty list items (#4193). - + More accurate parsing of references (#4156). Previously we erroneously - included the enclosing backticks in a reference ID (#4156). This - change also disables interpretation of syntax inside references, as - in docutils. So, there is no emphasis in `` `my *link*`_ ``. - - * Docx reader: - - + Continue lists after interruption (#4025, Jesse Rosenthal). - Docx expects that lists will continue where they left off after an - interruption and introduces a new id if a list is starting again. So - we keep track of the state of lists and use them to define a "start" - attribute, if necessary. - + Add tests for structured document tags unwrapping (Jesse Rosenthal). - + Preprocess Document body to unwrap `w:sdt` elements (Jesse Rosenthal, - #4190). - - * Plain writer: - - + Don't linkify table of contents. - - * RST writer: - - + Fix anchors for headers (#4188). We were missing an `_`. - - * PowerPoint writer (Jesse Rosenthal): - - + Treat lists inside BlockQuotes as lists. We don't yet produce - incremental lists in PowerPoint, but we should at least treat lists - inside BlockQuotes as lists, for compatibility with other slide formats. - + Add ability to force size. This replaces the more specific - `blockQuote runProp`, which only affected the size of blockquotes. We - can use this for notes, etc. - + Implement notes. This currently prints all notes on a final slide. - Note that at the moment, there is a danger of text overflowing the - note slide, since there is no logic for adding further slides. - + Implement basic definition list functionality to PowerPoint writer. - + Don't look for default template file for Powerpoint (#4181). - + Add pptx to isTextFormat list. This is used to check standalone - and not writing to the terminal. - + Obey slide level option (Jesse Rosenthal). - + Introduce tests. - - * Docx writer: - - + Ensure that `distArchive` is the one that comes with pandoc - (#4182). Previously a `reference.docx` in `~/.pandoc` (or the user data - dir) would be used instead, and this could cause problems because a - user-modified docx sometimes lacks vital sections that we count - on the `distArchive` to supply. - - * Org writer: - - + Do not wrap "-" to avoid accidental bullet lists (Alexander Krotov). - + Don't allow fn refs to wrap to beginning of line (#4171, with help from - Alexander Krotov). Otherwise they can be interpreted as footnote - definitions. - - * Muse writer (Alexander Krotov): - - + Don't wrap note references to the next line (#4172). - - * HTML writer: - - + Use br elements in line blocks instead of relying on CSS - (#4162). HTML-based templates have had the custom CSS for - `div.line-block` removed. Those maintaining custom templates will want - to remove this too. We still enclose line blocks in a div with class - `line-block`. - - * LaTeX writer: - - + Use `\renewcommand` for `\textlatin` with babel (#4161). - This avoids a clash with a deprecated `\textlatin` command defined - in Babel. - + Allow fragile=singleslide attribute in beamer slides (#4169). - + Use `\endhead` after `\toprule` in headerless tables (#4207). - - * FB2 writer: - - + Add cover image specified by `cover-image` meta (Alexander Krotov, - #4195). - - * JATS writer (Hamish Mackenzie): - - + Support writing `<fig>` and `<table-wrap>` elements - with `<title>` and `<caption>` inside them by using Divs with class set - to one of `fig`, `table-wrap` or `caption` (Hamish Mackenzie). The - title is included as a Heading so the constraint on where Heading can - occur is also relaxed. - + Leave out empty alt attributes on links. - + Deduplicate image mime type code. - + Make `<p>` optional in `<td>` and `<th>` (#4178). - + Self closing tags for empty xref (#4187). - + Improve support for code language. - - * Custom writer: - - + Use init file to setup Lua interpreter (Albert Krewinkel). - The same init file (`data/init`) that is used to setup the Lua - interpreter for Lua filters is also used to setup the interpreter of - custom writers.lua. - + Define instances for newtype wrapper (Albert Krewinkel). The custom - writer used its own `ToLuaStack` instance definitions, which made - it difficult to share code with Lua filters, as this could result - in conflicting instances. A `Stringify` wrapper is introduced to - avoid this problem. - + Added tests for custom writer. - + Fixed definition lists and tables in `data/sample.lua`. - - * Fixed regression: when target is PDF, writer extensions were being - ignored. So, for example, `pandoc -t latex-smart -o file.pdf` - did not work properly. - - * Lua modules (Albert Krewinkel): - - + Add `pandoc.utils` module, to hold utility functions. - + Create a Haskell module Text.Pandoc.Lua.Module.Pandoc to - define the `pandoc` lua module. - + Make a Haskell module for each Lua module. Move definitions for the - `pandoc.mediabag` modules to a separate Haskell module. - + Move `sha1` from the main `pandoc` module to `pandoc.utils`. - + Add function `pandoc.utils.hierarchicalize` (convert list of - Pandoc blocks into (hierarchical) list of Elements). - + Add function `pandoc.utils.normalize_date` (parses a date and - converts it (if possible) to "YYYY-MM-DD" format). - + Add function `pandoc.utils.to_roman_numeral` (allows conversion - of numbers below 4000 into roman numerals). - + Add function `pandoc.utils.stringify` (converts any AST element - to a string with formatting removed). - + `data/init.lua`: load `pandoc.utils` by default - + Turn pipe, read into full Haskell functions. The `pipe` and `read` - utility functions are converted from hybrid lua/haskell functions - into full Haskell functions. This avoids the need for intermediate - `_pipe`/`_read` helper functions, which have dropped. - + pandoc.lua: re-add missing MetaMap function. This was a bug - introduced in version 2.0.4. - - * Text.Pandoc.Class: Add `insertInFileTree` [API change]. This gives - a pure way to insert an ersatz file into a `FileTree`. In addition, we - normalize paths both on insertion and on lookup. - - * Text.Pandoc.Shared: export `blocksToInlines'` (API change, Maura Bieg). - - * Text.Pandoc.MIME: Add opus to MIME type table as audio/ogg (#4198). - - * Text.Pandoc.Extensions: Alphabetical order constructors for - `Extension`. This makes them appear in order in `--list-extensions`. - - * Allow lenient decoding of latex error logs, which are not always - properly UTF8-encoded (#4200). - - * Update latex template to work with recent versions of beamer. - The old template produced numbered sections with some recent - versions of beamer. Thanks to Thomas Hodgson. - - * Updated reference.docx (#4175). Instead of just "Hello, world", the - document now contains exemplars of most of the styles that have an - effect on pandoc documents. This makes it easier to see the effect - of style changes. - - * Removed `default.theme` data file (#4096). It is no longer needed now - that we have `--print-highlight-style`. - - * Added `stack.lts9.yaml` for building with lts 9 and ghc 8.0.2. - We still need this for the alpine static linux build, since - we don't have ghc 8.2.2 for that yet. - - * Removed `stack.pkg.yaml`. We only really need `stack.yaml`; we - can put flag settings for pandoc-citeproc there. - - * Makefile: Add 'trypandoc' and 'pandoc-templates' targets to - make releases easier. - - * MANUAL.txt: - - + Add note on what formats have `+smart` by default. - + Use native syntax for custom-style (#4174, Mauro Bieg). - + Introduce dedicated Extensions section, since some extensions - affect formats other than markdown (Mauro Bieg, #4204). - + Clarify default html output for `--section-divs` (Richard Edwards). - - * filters.md: say that Text.Pandoc.JSON comes form pandoc-types. - Closes jgm/pandoc-website#16. - - * epub.md: Delete removed `-S` option from command (#4151, Georger Araújo). - -pandoc (2.0.5) - - * Fix a bug in 2.0.4, whereby pandoc could not read the theme files - generated with `--print-highlight-style` (#4133). Improve JSON - serialization of styles. - - * Fix CSS issues involving line numbers (#4128). - Highlighted code blocks are now enclosed in a div with class `sourceCode`. - Highlighting CSS no longer sets a generic color for pre and code; we only - set these for class `sourceCode`. - - * `--pdf-engine-opt`: fix bug where option order was reversed (#4137). - - * Add PowerPoint (pptx) writer (Jesse Rosenthal). - It works following the standard Pandoc conventions for making other - sorts of slides. Caveats: - - + Syntax highlighting is not yet implemented. (This is difficult - because there are no character classes in Powerpoint.) - + Footnotes and Definition lists are not yet implemented. (Notes will - usually take the form of a final slide. - + Image placement and auto-resizing has a few glitches. - + Reference powerpoint files don't work dependably from the command - line. This will be implemented, but at the moment users are advised - to change themes from within Powerpoint. - - * Create shared Text.Pandoc.Writers.OOXML module (Jesse Rosenthal). - This is for functions used by both Powerpoint and Docx writers. - - * Add default pptx data for Powerpoint writer (Jesse Rosenthal). - - * Add `empty_paragraphs` extension. - - + Deprecate `--strip-empty-paragraphs` option. Instead we now - use an `empty_paragraphs` extension that can be enabled on - the reader or writer. By default, disabled. - + Add `Ext_empty_paragraphs` constructor to `Extension`. - + Revert "Docx reader: don't strip out empty paragraphs." - This reverts commit d6c58eb836f033a48955796de4d9ffb3b30e297b. - + Implement `empty_paragraphs` extension in docx reader and writer, - opendocument writer, HTML reader and writer. - + Add tests for `empty_paragraphs` extension. - - * Markdown reader: - - + Don't parse native div as table caption (#4119). - + Improved computation of column widths in pipe tables. - Pipe tables with lines longer than the text width (as set - by `--columns`) are now scaled to text width, with the relative - widths of columns determined by the ratios between the - header lines. Previously we computed column widths using - the ratio of header line lengths to column width, so that - tables with narrow header lines were extremely thin, which - was very rarely the desired result. - - * LaTeX reader: fix `\` before newline (#4134). This should be a space, - as long as it's not followed by a blank line. This has been fixed at the - tokenizer level. - - * Muse reader (Alexander Krotov): - - + Add test for `#disable-tables` directive in Emacs mode. - + Don't allow emphasis to be preceded by letter. - + Add underline support in Emacs Muse mode.. - + Support multiline directives in Amusewiki mode - - * Man writer: omit internal links (#4136). That is, just print the link - text without the URL. - - * Markdown reader: accept processing instructions as raw HTML (#4125). - - * Lua filters (Albert Krewinkel): - - + Use script to initialize the interpreter. The file `init.lua` is - used to initialize the Lua interpreter which is used in Lua filters. - This gives users the option to require libraries which they want to - use in all of their filters, and to extend default modules. - + Fix package loading for Lua 5.1. The list of package searchers is - named `package.loaders` in Lua 5.1 and LuaJIT, and `package.searchers` - in Lua 5.2 and later. - + Refactor lua module handling. The integration with Lua's package/module - system is improved: A pandoc-specific package searcher is prepended to - the searchers in `package.searchers`. The modules `pandoc` and - `pandoc.mediabag` can now be loaded via `require`. - + Bump lower bound of hslua. The release hslua 0.9.3 contains a new - function which makes using Haskell functions as package loaders much - easier. - - * reveal.js template: add title-slide identifier to title slide (#4120). - This allows it to be styled more easily. - - * LaTeX template: Added support for `pagestyle` variable (#4135, - Thomas Hodgson) - - * Add `-threaded` to ghc-options for executable (#4130, fixes a build - error on linux). - - -pandoc (2.0.4) - - * Add `--print-highlight-style` option. This generates a JSON version - of a highlighting style, which can be saved as a `.theme` file, modified, - and used with `--highlight-style` (#4106, #4096). - - * Add `--strip-empty-paragraphs` option. This works for any input format. - It is primarily intended for use with docx and odt documents where - empty paragraphs have been used for inter-paragraph spaces. - - * Support `--webtex` for `gfm` output. - - * Recognize `.muse` file extension. - - * Support beamer `\alert` in LaTeX reader. Closes #4091. - - * Docx reader: don't strip out empty paragraphs (#2252). - Users who have a conversion pipeline from docx may want to consider adding - `--strip-empty-paragraphs` to the command line. - - * Org reader (Albert Krewinkel): Allow empty list items (#4090). - - * Muse reader (Alexander Krotov): - - + Parse markup in definition list terms. - + Allow definition to end with EOF. - + Make code blocks round trip. - + Drop common space prefix from list items. - + Add partial round trip test. - + Don't interpret XML entities. - + Remove `nested`. - + Parse `~~` as non-breaking space in Emacs mode. - + Correctly remove indentation from notes. Exactly one space is - required and considered to be part of the marker. - + Allow list items to be empty. - + Add ordered list test. - + Add more multiline definition tests. - + Don't allow blockquotes within lists. - + Fix reading of multiline definitions. - + Add inline `<literal>` support. - + Concatenate inlines of the same type - - * Docx writer: allow empty paragraphs (#2252). - - * CommonMark/gfm writer: - - + Use raw html for native divs/spans (#4113). This allows a pandoc - markdown native div or span to be rendered in gfm using raw html tags. - + Implement `raw_html` and `raw_tex` extensions. Note that `raw_html` - is enabled by default for `gfm`, while `raw_tex` is disabled by default. - - * Muse writer (Alexander Krotov): - - + Test that inline math conversion result is normalized. - Without normalization this test produced - `<em>a</em><em>b</em><em>c</em>`. - + Improve inline list normalization and move to writer. - + Escape hash symbol. - + Escape `----` to avoid accidental horizontal rules. - + Escape only `</code>` inside code tag. - + Additional `<verbatim>` is not needed as `<code>` is verbatim already. - - * LaTeX writer: - - + Allow specifying just width or height for image size. - Previously both needed to be specified (unless the image was - being resized to be smaller than its original size). - If height but not width is specified, we now set width to - textwidth. If width but not height is specified, we now set - height to textheight. Since we have `keepaspectratio`, this - yields the desired result. - + Escape `~` and `_` in code with `--listings` (#4111). - - * HTML writer: export `tagWithAttributes`. This is a helper allowing - other writers to create single HTML tags. - - * Let papersizes `a0`, `a1`, `a2`, ... be case-insensitive by - converting the case as needed in LaTeX and ConTeXt writers. - - * Change `fixDisplayMath` from `Text.Pandoc.Writers.Shared` - so that it no longer produces empty `Para`'s as an artifact. - - * `Text.Pandoc.Shared.blocksToInlines`: rewrote using builder. - This gives us automatic normalization, so we don't get - for example two consecutive Spaces. - - * Include default CSS for 'underline' class in HTML-based templates. - - * revealjs template: add `tex2jax` configuration for the - math plugin. With the next release of reveal.js, this will - fix the problem of `$`s outside of math contexts being - interpreted as math delimiters (#4027). - - * `pandoc.lua` module for use in lua filters (Albert Krewinkel): - - + Add basic lua List module (#4099, #4081). The List module is - automatically loaded, but not assigned to a global variable. It can be - included in filters by calling `List = require 'List'`. Lists of blocks, - lists of inlines, and lists of classes are now given `List` as a metatable, - making working with them more convenient. E.g., it is now possible to - concatenate lists of inlines using Lua's concatenation operator `..` - (requires at least one of the operants to have `List` as a metatable): - - function Emph (emph) - local s = {pandoc.Space(), pandoc.Str 'emphasized'} - return pandoc.Span(emph.content .. s) - end - - The `List` metatable is assigned to the tables which get passed to - the constructors `MetaBlocks`, `MetaInline`, and `MetaList`. This - enables the use of the resulting objects as lists. - + `Lua/StackInstances`: push Pandoc and Meta via constructor. - Pandoc and Meta elements are now pushed by calling the respective - constructor functions of the pandoc Lua module. This makes serialization - consistent with the way blocks and inlines are pushed to lua and allows - to use List methods with the `blocks` value. - + Add documentation for pandoc.List in `lua-filters.md`. - - * Use latest tagsoup. This fixes a bug in parsing HTML tags with - `&` (but not a valid entity) following them (#4094, #4088). - - * Use skylighting 0.4.4.1, fixing the color of unmarked code text - when `numberLines` is used (#4103). - - * Make `normalizeDate` more forgiving (Mauro Bieg, #4101), not - requiring a leading 0 on single-digit days. - - * Fix `--help` output for `--highlight-style` to include `FILE` (Mauro - Bieg, #4095). - - * Clearer deprecation warning for `--latexmathml, --asciimathml, -m`. - Previously we only mentioned `--latexmathml`, even if `-m` was - used. - - * Changelog: fix description of lua filters in 2.0 release - (Albert Krewinkel). Lua filters were initially run *after* conventional - (JSON) filters. However, this was changed later to make it easier to deal - with files in the mediabag. The changelog is updated to describe that - feature of the 2.0 release correctly. - - * Change Generic JSON instances to TemplateHaskell (Jasper Van der Jeugt, - #4085). This reduces compile time and memory usage significantly. - - * `lua-filters.md`: Added tikz filter example. - - * Create alternative zip file for macOS binaries. - - * Create alternative zip file for Windows binaries. - - * Update INSTALL.md since we now provide zips for binaries. - - * Relax `http-types` dependency (Justus Sagemüller, #4084). - - * Add `epub.md`, `getting-started.md` to docs. These used to live in - the website repo. - - * Add `packages` target to Makefile. - - * Bump bounds for binary, http-types, tasty-hunit - -pandoc (2.0.3) - - * Lua filters: preload text module (Albert Krewinkel, #4077). - The `text` module is preloaded in lua. The module contains some UTF-8 - aware string functions, implemented in Haskell. The module is loaded on - request only, e.g.: - - text = require 'text' - function Str (s) - s.text = text.upper(s.text) - return s - end - - * Allow table-like access to attributes in lua filters (Albert Krewinkel, - #4071). Attribute lists are represented as associative lists in Lua. Pure - associative lists are awkward to work with. A metatable is attached to - attribute lists, allowing to access and use the associative list as if - the attributes were stored in as normal key-value pair in table. - Note that this changes the way `pairs` works on attribute lists. Instead - of producing integer keys and two-element tables, the resulting iterator - function now returns the key and value of those pairs. Use `ipairs` to - get the old behavior. Warning: the new iteration mechanism only works if - pandoc has been compiled with Lua 5.2 or later (current default: 5.3). - - * Text.Pandoc.Parsing.uri: allow `&` and `=` as word characters (#4068). - This fixes a bug where pandoc would stop parsing a URI with an - empty attribute: for example, `&a=&b=` wolud stop at `a`. - (The uri parser tries to guess which punctuation characters - are part of the URI and which might be punctuation after it.) - - * Introduce `HasSyntaxExtensions` typeclass (Alexander Krotov, #4074). - - + Added new `HasSyntaxExtensions` typeclass for `ReaderOptions` and - `WriterOptions`. - + Reimplemented `isEnabled` function from `Options.hs` to accept both - `ReaderOptions` and `WriterOptions`. - + Replaced `enabled` from `CommonMark.hs` with new `isEnabled`. - - * Add `amuse` extension (Alexander Krotov) to enable Amuse wiki - behavior for `muse`. New `Ext_amuse` constructor for - `Extension`. Note: this is switched on by default; for - Emacs behavior, use `muse-amuse`. - - * Muse reader (Alexander Krotov): - - + Count only one space as part of list item marker. - + Produce SoftBreaks on newlines. Now wrapping can be preserved - with `--wrap=preserve`. - + Add Text::Amuse footnote extensions. Footnote end is indicated by - indentation, so footnotes can be placed anywhere in the text, - not just at the end of it. - + Accept Emacs Muse definition lists when `-amuse`. - Emacs Muse does not require indentation. - - * HTML reader: - - + Ensure we don't produce level 0 headers (#4076), even for chapter - sections in epubs. This causes problems because writers aren't set - up to expect these. - + Allow spaces after `\(` and before `\)` with `tex_math_single_backslash`. - Previously `\( \frac{1}{a} < \frac{1}{b} \)` was not parsed as math in - `markdown` or `html` `+tex_math_single_backslash`. - + Parse div with class `line-block` as LineBlock. - + Don't fail with block-level content in figcaption (Mauro Bieg, #4183). - - * MANUAL: clarify that math extensions work with HTML. - Clarify that `tex_math_dollars` and `tex_math_single_backslash` - will work with HTML as well as Markdown. - - * Creole reader: Fix performance issue for longer lists (Sascha Wilde, - #4067). - - * RST reader: better support for 'container' directive (#4066). - Create a div, incorporate name attribute and classes. - - * LaTeX reader: - - + Support column specs like `*{2}{r}` (#4056). This is equivalent to - `rr`. We now expand it like a macro. - + Allow optional args for parbox (#4056). - + Allow optional arguments on `\footnote` (#4062). - - * EPUB writer: Fixed path for cover image (#4069). It was previously - `media/media/imagename`, and should have been `media/imagename`. - - * Markdown writer: fix bug with doubled footnotes in grid tables - (#4061). - - * LaTeX template: include natbib/biblatex after polyglossia (#4073). - Otherwise we seem to get an error; biblatex wants polyglossia - language to be defined. - - * Added examples to lua filters documentation. - - -pandoc (2.0.2) - - * Deprecated ancient HTML math methods: `--latexmathml`, `--gladtex`, - `--mimetex`, `--jsmath`. - - * Fixed URIs in `data/jats.csl`. They were being rendered twice, - leading to invalid XML in default JATS output with pandoc-citeproc. - - * `lua-filters.md`: use real-world man page filter as example. - - * Add lua filter functions `walk_inline` and `walk_block` - in the pandoc module, to apply filters inside particular - inline and block elements. - - * Refactored some code from `Text.Pandoc.Lua.PandocModule` - into new internal module `Text.Pandoc.Lua.Filter`. - - * Markdown reader: - - + Allow fenced code blocks to be indented 1-3 spaces (#4011). - This brings our handling of them into alignment with CommonMark's. - + Fix YAML metadata with "chomp" (`|-`). Previously if a - YAML block under `|-` contained a blank line, pandoc would - not parse it as metadata. - - * Removed `etc.` from abbreviations file. Often `etc.` ends a - sentence, and we want the period to be treated as a - sentence-ending period. - - * Fix regression with `--metadata` (#4054). Values specified with - `--metadata` should replace a metadata value set in the document - itself, rather than creating a list including a new value. - - * EPUB writer: - - + Fix EPUB OCF structure. #3720 had been improperly implemented. - + Fix modified paths for raw HTML tags (src, poster, etc.) - (#4050, #4055). This had not been updated for the new EPUB - container layout, with a separate text/ subdirectory. - + Fix image paths with empty `--epub-subdirectory`. - - * Miscellaneous code cleanup (Alexander Krotov). - - * Use pandoc-types 1.17.3, which adds `Walkable` instances - for `[Block] Block` and `[Inline] Inline`. - - * Remove obsolete `stack.full.yaml` (#4052). - - * Change to using pandoc-citeproc 0.12.1 in binary packages. - - * Consolidate math output method documentation (#4049, Mauro Bieg). - - * `MANUAL.txt`: fix header level of "Extension: emoji" (Albert Krewinkel). - - * Use lua filter to generate man page from `MANUAL.txt`, replacing old - Haskell filters. This is easier and faster. - - * Improved `INSTALL.md`. - - * Update commands to extract deb archive on Linux (#4043, Salim B). - - -pandoc (2.0.1.1) - - * Improved fix to #3989 (parsing of HTML tags containing - `>` in an attribute or comment). The previous fix (in 2.0.1) only - worked in certain cases. - - * FB2 writer (Alexander Krotov): - - + Add `unrecognised` genre to `<title-info>` - (Alexander Krotov). XML schema requires at least one genre. - + Remove `<annotation>` from `<body>`. - - * CommonMark writer: fix strikethrough for `gfm` (#4038). - - * Use texmath 0.10, which adds support for a wider range of - symbols and fixes default column alignments in MathML - and OMML. - - * Highlighting fixes, using skylighting 0.4.3.2: - - + Fix invalid CSS. - + Support `lineAnchors` (or `line-anchors`) in HTML code blocks. - + Ensure that code lines don't get duplicate identifiers (#4031). - The line identifiers are built using the code block's identifier - as a prefix. If the code block has null identifier, we use - `cb1`, `cb2`, etc. - - * Added a few abbreviations to `data/abbreviations`, - and sorted the list (#3984, Wandmalfarbe). - - * Improved support for columns in HTML writer (#4028). - - + Remove `width` attribute from the `div`. - + Remove space between `<div class="column">` elements, - since this prevents columns whose widths sum to 100% - (the space takes up space). - + Move as much as possible of the CSS to the template. - + Ensure that all the HTML-based templates (including epub) - contain the CSS for columns. - + Columns default to 50% width unless they are given a width - attribute. So if you want two equal-width columns, you - can use a div with class `column` and no `width` attribute. - - * SelfContained: use `base64` for css links with media attribute (#4026). - This fixes `--self-contained` with S5. - - * Improve `pandoc-template-mode.el` (Vaclav Haisman). - - * Issue INFO, not WARNING, when a .sty file cannot be - read in LaTeX reader. It is normally not an issue requiring - a fix from the user if .sty files are not found. - - * INSTALL.md: MacOS instructions needed xar -f (adam234). - - * MANUAL.txt: - - + Clarify that --setext-headers doesn't affect gfm output (#4035). - + Clarify what is needed to open and close a div in `fenced_divs` - (#4039, Tristano Ajmone). - + Removed reference to `default.beamer` in docs (#4024). - Also added mention of other templates affecting PDF output - with different settings. - -pandoc (2.0.1) - - * Fixed regression in parsing of HTML comments in markdown and other - non-HTML formats (`Text.Pandoc.Readers.HTML.htmlTag`) (#4019). - The parser stopped at the first `>` character, even if it wasn't - the end of the comment. - - * Creole reader (Sascha Wilde): - - + Fix some minor typos and formatting. - + Add additional test on nowiki-block after para. - + Fix lists with trailing white space. - - * LaTeX reader: handle `%` comment right after command. - For example, `\emph%`. - - * Markdown reader: make sure fenced div closers work in lists. - Previously the following failed: - - ::: {.class} - 1. one - 2. two - ::: - - and you needed a blank line before the closing `:::`. - - * Make `fenced_divs` affect the Markdown writer. If `fenced_divs` is - enabled, Divs will be rendered as fenced divs. - - * LaTeX/Beamer writer: support "blocks" inside columns and other Divs - (#4016). - - * HTML Writer: consistently use dashed class-names (Mauro Bieg, #3556). - Note: this change may require some changes in CSS rules. - `footnoteRef` has become `footnote-ref`, `titleslide` has - become `title-slide`, and `footnoteBack` has become `footnote-back`. - - * JATS writer: Properly pass through author metadata (#4020). - - * FB2 writer (Alexander Krotov): - - + Write blocks outside of `<p>` in definitions. - + Make bullet lists consistent with ordered lists, repeating - the marker for the outer list rather than indenting sublists, - since indentation does not work in readers. - + Add new style FB2 tests. - - * `Text.Pandoc.ImageSize`: Add `Millimeter` constructor to `Dimension` - (#4012) [API change]. Now sizes given in 'mm' are no longer converted - to 'cm'. - - * Revise documentation of small caps syntax (Andrew Dunning, #4013). - - * Fix broken reference links in manual (Andrew Dunning, #4014) - - * Fixed example of slide columns structure in changelog (#4015). - Also documented this feature in MANUAL.txt. - - -pandoc (2.0.0.1) - - * EPUB writer: - - + Fixed filepaths for nonstandard epub-subdirectory values. - + Ensure that epub2 is recognized as a non-text format, - so that a template is used. - + Don't include "prefix" attribute for ibooks for epub2. - It doesn't validate. - + Fix stylesheet paths; previously we had an incorrect - stylesheet path for the cover page and nav page. - - * LaTeX reader: - - + Insert space when needed in macro expansion (#4007). - Sometimes we need to insert a space after a control sequence - to prevent it merging with a following letter. - + Allow unbraced arguments for macros (#4007). - + Allow body of macro definition to be unbraced (#4007). - - * Linux package build: ensure that pandoc-citeproc is statically linked. - - * trypandoc: add native, ms. - -pandoc (2.0) - - [new features] - - * New output format `ms` (groff ms). Complete support, including - tables, math, syntax highlighting, and PDF bookmarks. The writer uses - texmath's new eqn writer to convert math to eqn format, so a ms file - produced with this writer should be processed with `groff -ms -e` if - it contains math. - - * New output format `jats` (Journal Article Tag Suite). This is an XML - format used in archiving and publishing articles. Note that a - URI-encoded CSL stylesheet (`data/jats.csl`) is added automatically - unless a stylesheet is specified using `--css`. - - * New output format `gfm` (GitHub-flavored CommonMark) (#3841). - This uses bindings to GitHub's fork of cmark, so it should parse - gfm exactly as GitHub does (excepting certain postprocessing - steps, involving notifications, emojis, etc.). `markdown_github` - has been deprecated in favor of `gfm`. - - * New output format `muse` (Emacs Muse) (Alexander Krotov, #3489). - - * New input format `gfm` (GitHub-flavored CommonMark) (#3841). - This uses bindings to GitHub's fork of cmark. `markdown_github` - has been deprecated in favor of `gfm`. - - * New input format `muse` (Emacs Muse) reader (Alexander Krotov, #3620). - - * New input format `tikiwiki` (TikiWiki markup) (rlpowell, #3800). - - * New input format `vimwiki` (Vimwiki markup) (Yuchen Pei, #3705). - Note that there is a new data file, `data/vimwiki.css`, which can - be used to display the HTML produced by this reader and - pandoc's HTML writer in the style of vimwiki's own HTML - export. - - * New input format `creole` (Creole 1.0) (#3994, Sascha Wilde). - - * New syntax for Divs, with `fenced_divs` extension enabled by - default (#168). This gives an attractive, plain-text way to create - containers for block-level content. - - * Added new syntax for including raw content in any output format, - enabled by the `raw_attribute` extension (which is on by default - for `markdown` and `multimarkdown`). The syntax is the same as - for fenced code blocks or code inlines, only with `{=FORMAT}` for - attributes, where `FORMAT` is the name of the output format - (e.g., `ms`, `html`). - - * Implement multicolumn support for slide formats (#1710). - The structure expected is: - - :::::::::::::: {.columns} - ::: {.column width="40%"} - contents... - ::: - ::: {.column width="60%"} - contents... - ::: - :::::::::::::: - - Support has been added for beamer and all HTML slide formats. - - * Allows line comments in templates, beginning with `$--` (#3806). - (Requires doctemplates 0.2.1.) - - * Add `--eol=crlf|lf|native` flag and writer option to control line endings - (Stefan Dresselhaus, #3663, #2097). - - * Add `--log` option to save log messages in JSON format to a file (#3392). - - * Add `--request-header` option, to set request headers when pandoc - makes HTTP requests to fetch external resources. For example: - `--request-header User-Agent:blah`. - - * Added lua filters (Albert Krewinkel, #3514). The new `--lua-filter` - option works like `--filter` but takes pathnames of special lua filters - and uses the lua interpreter baked into pandoc, so that no external - interpreter is needed. Note that lua filters are all applied before - regular filters, regardless of their position on the command line. - For documentation of lua filters, see `doc/lua-filters.md`. - - * Set `PANDOC_READER_OPTIONS` in environment where filters are run. - This contains a JSON representation of `ReaderOptions`, so filters - can access it. - - * Support creation of pdf via groff `ms` and pdfroff. - `pandoc -t ms -o output.pdf input.txt`. - - * Support for PDF generation via HTML and `weasyprint` or `prince` - (Mauro Bieg, #3909). `pandoc -t html5 -o output.pdf --pdf-engine=prince`. - - * Added `--epub-subdirectory` option (#3720). This specifies the - subdirectory in the OCF container that holds the EPUB specific content. - We now put all EPUB related content in an `EPUB/` subdirectory by default - (later this will be configurable). - - ``` - mimetype - META-INF/ - com.apple.ibooks.display-options.xml - container.xml - EPUB/ <<--configurable-->> - fonts/ <<--static-->> - font.otf - media/ <<--static-->> - cover.jpg - fig1.jpg - styles/ <<--static-->> - stylesheet.css - content.opf - toc.ncx - text/ <<--static-->> - ch001.xhtml - ``` - - * Added `--resource-path=SEARCHPATH` command line option (#852). - SEARCHPATH is separated by the usual character, depending on OS - (: on unix, ; on windows). Default resource path is just working - directory. However, the working directory must be explicitly - specified if the `--resource-path` option is used. - - * Added `--abbreviations=FILE` option for custom abbreviations file - (#256). Default abbreviations file (`data/abbreviations`) contains - a list of strings that will be recognized by pandoc's - Markdown parser as abbreviations. (A nonbreaking space will - be inserted after the period, preventing a sentence space in - formats like LaTeX.) Users can override the default by putting a file - abbreviations in their user data directory (`~/.pandoc` on *nix). - - * Allow a theme file as argument to `--highlight-style`. - Also include a sample, `default.theme`, in `data/`. - - * Allow `--syntax-definition` option for dynamic loading of syntax - highlighting definitions (#3334). - - * Lists in `markdown` by default now use the CommonMark variable - nesting rules (#3511). The indentation required for a block-level - item to be included in a list item is no longer fixed, but is - determined by the first line of the list item. To be included in - the list item, a block must be indented to the level of the first - non-space content after the list marker. Exception: if are 5 or more - spaces after the list marker, then the content is interpreted as an - indented code block, and continuation paragraphs must be indented - two spaces beyond the end of the list marker. See the CommonMark - spec for more details and examples. - - Documents that adhere to the four-space rule should, in most cases, - be parsed the same way by the new rules. Here are some examples - of texts that will be parsed differently: - - - a - - b - - will be parsed as a list item with a sublist; under the four-space - rule, it would be a list with two items. - - - a - - code - - Here we have an indented code block under the list item, even though it - is only indented six spaces from the margin, because it is four spaces - past the point where a continuation paragraph could begin. With the - four-space rule, this would be a regular paragraph rather than a code - block. - - - a - - code - - Here the code block will start with two spaces, whereas under - the four-space rule, it would start with `code`. With the four-space - rule, indented code under a list item always must be indented eight - spaces from the margin, while the new rules require only that it - be indented four spaces from the beginning of the first non-space - text after the list marker (here, `a`). - - This change was motivated by a slew of bug reports from people - who expected lists to work differently (#3125, #2367, #2575, #2210, - #1990, #1137, #744, #172, #137, #128) and by the growing prevalance - of CommonMark (now used by GitHub, for example). Those who - prefer the old behavior can use `-f markdown+four_space_rule`. - - * Added `four_space_rule` extension. This triggers the old pandoc - parsing rule for content nested under list items (the "four space - rule"). - - * Added `spaced_reference_links` extension (#2602). It allows whitespace - between the two parts of a reference link: e.g. - - [a] [b] - - [b]: url - - This was previously enabled by default; it is now forbidden by default. - - * Add `space_in_atx_header` extension (#3512). This is enabled by default - in pandoc and GitHub markdown but not the other flavors. - This requires a space between the opening #'s and the header - text in ATX headers (as CommonMark does but many other implementations - do not). This is desirable to avoid falsely capturing things like - - #hashtag - - or - - #5 - - * Add `sourcefile` and `outputfile` template variables (Roland Hieber, - #3431). - - * Allow ibooks-specific metadata in epubs (#2693). You can now have - the following fields in your YAML metadata, and it will be treated - appropriately in the generated EPUB: - - ``` - ibooks: - version: 1.3.4 - specified-fonts: false - ipad-orientation-lock: portrait-only - iphone-orientation-lock: landscape-only - binding: true - scroll-axis: vertical - ``` - - - [behavior changes] - - * Reader functions no longer presuppose that CRs have been - stripped from the input. (They strip CRs themselves, before - parsing, to simplify the parsers.) - - * Added support for translations (localization) (#3559). - Currently this only affects the LaTeX reader, for things - like `\figurename`. Translation data files for 46 languages - can be found in `data/translations`. - - * Make `--ascii` work with DocBook output too. - - * Rename `--latex-engine` to `--pdf-engine`, - and `--latex-engine-opt` to `--pdf-engine-opt`. - - * Removed `--parse-raw` and `readerParseRaw`. These were confusing. - Now we rely on the `+raw_tex` or `+raw_html` extension with latex or html - input. Thus, instead of `--parse-raw -f latex` we use `-f latex+raw_tex`, - and instead of `--parse-raw -f html` we use `-f html+raw_html`. - - * With `--filter` R filters are now recognized, even if they are - not executable (#3940, #3941, Andrie de Vries). - - * Support SVG in PDF output, converting with `rsvg2pdf` (#1793). - - * Make epub an alias for epub3, not epub2. - - * Removed `--epub-stylesheet`; use `--css` instead (#3472, #847). - Multiple stylesheets may be used. Stylesheets will be taken both from - `--css` and from the `stylesheet` metadata field (which can contain - either a file path or a list of them). - - * `--mathml` and MathML in HTMLMathMethod no longer take an argument. - The argument was for a bridge JavaScript that used to be necessary - in 2004. We have removed the script already. - - * `--katex` improvements. The latest version is used, and the - autoload script is loaded by default. - - * Change MathJax CDN default since old one is shutting down (#3544). - Note: The new URL requires a version number, which we'll have - to update manually in subsequent pandoc releases in order to - take advantage of mathjax improvements. - - * `--self-contained`: don't incorporate elements with `data-external="1"` - (#2656). You can leave an external link as it is by adding the attribute - data-external="1" to the element. Pandoc will then not try to - incorporate its content when `--self-contained` is used. This is - similar to a feature already supported by the EPUB writer. - - * Allow `--extract-media` to work with non-binary input formats - (#1583, #2289). If `--extract-media` is supplied with a non-binary - input format, pandoc will attempt to extract the contents of all - linked images, whether in local files, data: uris, or external uris. - They will be named based on the sha1 hash of the contents. - - * Make `papersize: a4` work regardless of the case of `a4`. - It is converted to `a4` in LaTeX and `A4` in ConTeXt. - - * Make `east_asian_line_breaks` affect all readers/writers (#3703). - - * Underlined elements are now treated consistently by readers - (#2270, hftf); they are always put in a Span with class `underline`. - This allows the user to treat them differently from other emphasis, - using a filter. Docx, Org, Textile, Txt2Tags, and HTML readers - have been changed. - - * Improved behavior of `auto_identifiers` when there are explicit ids - (#1745). Previously only autogenerated ids were added to the list - of header identifiers in state, so explicit ids weren't taken - into account when generating unique identifiers. Duplicated - identifiers could result. This simple fix ensures that explicitly given - identifiers are also taken into account. - - * Use `table-of-contents` for contents of toc, make `toc` a boolean - (#2872). Changed markdown, rtf, and HTML-based templates accordingly. - This allows you to set `toc: true` in the metadata; this - previously produced strange results in some output formats. - For backwards compatibility, `toc` is still set to the - toc contents. But it is recommended that you update templates - to use `table-of-contents` for the toc contents and `toc` - for a boolean flag. - - * Change behavior with binary format output to stdout. - Previously, for binary formats, output to stdout was disabled - unless we could detect that the output was being piped (and not - sent to the terminal). Unfortunately, such detection is not - possible on Windows, leaving windows users no way to pipe binary - output. So we have changed the behavior in the following way: - - + Output to stdout is allowed when it can be determined that - the output is being piped (on non-Windows platforms). - + If the `-o` option is not used, binary output is never sent - to stdout by default; instead, an error is raised. - + If `-o -` is used, binary output is sent to stdout, regardless - of whether it is being piped. This works on Windows too. - - * Better error behavior: uses of `error` have been replaced by - raising of `PandocError`, which can be trapped and handled by the - calling program. - - * Removed `hard_line_breaks` extension from `markdown_github` (#3594). - GitHub has two Markdown modes, one for long-form documents like READMEs - and one for short things like issue comments. In issue comments, a line - break is treated as a hard line break. In README, wikis, etc., it is - treated as a space as in regular Markdown. Since pandoc is more likely to - be used to convert long-form documents from GitHub Markdown, - `-hard_line_breaks` is a better default. - - * Include `backtick_code_blocks` extension in `mardkown_mmd` (#3637). - - * Escape `MetaString` values (as added with `-M/--metadata` flag) (#3792). - Previously they would be transmitted to the template without any - escaping. Note that `--M title='*foo*'` yields a different result from - - --- - title: *foo* - --- - - In the latter case, we have emphasis; in the former case, just - a string with literal asterisks (which will be escaped - in formats, like Markdown, that require it). - - * Allow `em`, `cm`, `in` for image height/width in HTML, LaTeX (#3450). - - * HTML writer: Insert `data-` in front of unsupported attributes. Thus, - a span with attribute `foo` gets written to HTML5 with `data-foo`, so - it is valid HTML5. HTML4 is not affected. This will allow us to use - custom attributes in pandoc without producing invalid HTML. (With help - from Wandmalfarbe, #3817.) - - * Plain writer: improved super/subscript rendering. We now - handle more non-digit characters for which there are - sub/superscripted unicode characters. When unicode - sub/superscripted characters are not available, we use - `_(..)` or `^(..)` (#3518). - - * Docbook, JATS, TEI writers: print INFO message when omitting interior - header (#3750). This only applies to section headers inside list items, - e.g., which were otherwise silently omitted. - - * Change to `--reference-links` in Markdown writer (#3701). With - `--reference-location` of `section` or `block`, pandoc will now repeat - references that have been used in earlier sections. The Markdown - reader has also been modified, so that *exactly* repeated references - do not generate a warning, only references with the same label but - different targets. The idea is that, with references after every block, - one might want to repeat references sometimes. - - * ODT/OpenDocument writer: - - + Support `lang` attribute (#1667). - + Added support for `--toc` (#2836). Thanks to @anayrat. - - * Docx writer: - - + `lang` meta, see #1667 (Mauro Bieg, #3515). - + Change `FigureWithCaption` to `CaptionedFigure` (iandol, #3658). - + Use `Table` rather than `Table Normal` for table style (#3275). - `Table Normal` is the default table style and can't be modified. - + Pass through comments (#2994). We assume that comments are defined as - parsed by the docx reader: - - I want <span class="comment-start" id="0" author="Jesse Rosenthal" - date="2016-05-09T16:13:00Z">I left a comment.</span>some text to - have a comment <span class="comment-end" id="0"></span>on it. - - We assume also that the id attributes are unique and properly - matched between comment-start and comment-end. - + Bookmark improvements. Bookmark start/end now surrounds content rather - than preceding it. Bookmarks generated for Div with id - (jgm/pandoc-citeproc#205). - + Add `keywords` metadata to docx document properties (Ian). - - * RST writer: support unknown interpreted text roles by - parsing them as `Span` with `role` attributes (#3407). This - way they can be manipulated in the AST. - - * HTML writer: - - + Line block: Use class instead of style attribute (#1623). We now - issue `<div class="line-block">` and include a default definition - for `line-block` in the default templates, instead of hard-coding a - `style` on the div. - + Add class `footnoteBack` to footnote back references (Timm Albers). - This allows for easier CSS styling. - + Render SmallCaps as span with smallcaps class (#1592), rather than - using a style attribute directly. This gives the user more flexibility - in styling small caps in CSS. - + With reveal.js we use `data-src` instead of `src` for images for - lazy loading. - + Special-case `.stretch` class for images in reveal.js (#1291). - Now in reveal.js, an image with class `stretch` in a paragraph - by itself will stretch to fill the whole screen, with no - caption or figure environment. - - * Added warnings for non-rendered blocks to writers. - - * Writers now raise an error on template failure. - - * When creating a PDF via LaTeX, warn if the font is missing some - characters (#3742). - - * Remove initial check for PDF-creating program (#3819). - Instead, just try running it and raise the exception if it - isn't found at that point. This improves things for users of Cygwin - on Windows, where the executable won't be found by `findExecutable` - unless `.exe` is added. The same exception is raised as before, but - at a later point. - - * Readers issue warning for duplicate header identifiers (#1745). - Autogenerated header identifiers are given suffixes so as not to clash - with previously used header identifiers. But they may still coincide with - an explicit identifier that is given for a header later in the document, - or with an identifier on a div, span, link, or image. We now issue - a warning in this case, so users can supply an explicit identifier. - - * CommonMark reader now supports `emoji`, `hard_line_breaks`, `smart`, - and `raw_html` extensions. - - * Markdown reader: - - + Don't allow backslash + newline to affect block structure (#3730). - Note that as a result of this change, the following, which formerly - produced a header with two lines separated by a line break, will - now produce a header followed by a paragraph: - - # Hi\ - there - - This may affect some existing documents that relied on - this undocumented and unintended behavior. This change makes pandoc - more consistent with other Markdown implementations, and with itself - (since the two-space version of a line break doesn't work inside ATX - headers, and neither version works inside Setext headers). - - + A space between the opening # and the header is now required for - pandoc and GitHub markdown (but not the other flavors). Disable - the `space_in_atx_header` extension (#3512) to restore the - original behavior. - - - * Org reader (Albert Krewinkel, unless noted): - - + Support `table.el` tables (#3314). - + Support macros (#3401). - + Support the `#+INCLUDE:` file inclusion mechanism (#3510). - Recognized include types are `example`, `export`, `src`, and - normal org file inclusion. Advanced features like line numbers - and level selection are not implemented yet. - + Interpret more meta value as inlines. The values of the following - meta variables are now interpreted using org-markup instead of - treating them as pure strings: `keywords` (comma-separated list of - inlines), `subtitle` (inline values), `nocite` (inline values, can - be repeated). - + Support `\n` export option (#3940). This turns all newlines in the - text into hard linebreaks. - - * RST reader: - - + Improved admonition support (#223). We no longer add an - `admonition` class, we just use the class for the type of admonition, - `note` for example. We put the word corresponding to the label in - a paragraph inside a `Div` at the beginning of the admonition with - class `admonition-title`. This is about as close as we can get to - RST's own output. - + Initial support of `.. table` directive. This allows adding captions - to tables. - + Support `.. line-block` directive. This is deprecated but may still - be in older documents. - + Support scale and align attributes of images (#2662). - + Implemented implicit internal header links (#3475). - + Support RST-style citations (#853). The citations appear at the end - of the document as a definition list in a special div with id - `citations`. Citations link to the definitions. - + Recurse into bodies of unknown directives (#3432). - In most cases it's better to preserve the content than - to emit it. This isn't guaranteed to have good results; - it will fail spectacularly for unknown raw or verbatim directives. - + Handle chained link definitions (#262). For example, - - .. _hello: - .. _goodbye: example.com - - Here both `hello` and `goodbye` should link to `example.com`. - + Support anchors (#262). E.g. - - `hello` - - .. _hello: - - paragraph - - This is supported by putting "paragraph" in a `Div` with id `hello`. - + Support `:widths:` attribute for table directive. - + Implement csv-table directive (#3533). Most attributes are supported, - including `:file:` and `:url:`. - + Support unknown interpreted text roles by parsing them as Span - with "role" attributes (#3407). This way they can be manipulated in - the AST. - - * HTML reader: parse a span with class `smallcaps` as `SmallCaps`. - - * LaTeX reader: - - + Implemented `\graphicspath` (#736). - + Properly handle column prefixes/suffixes. For example, in - `\begin{tabular}{>{$}l<{$}>{$}l<{$} >{$}l<{$}}` - each cell will be interpreted as if it has a `$` - before its content and a `$` after (math mode). - + Handle komascript `\dedication` (#1845). It now adds a - `dedication` field to metadata. It is up to the user to supply - a template that uses this variable. - + Support all `\textXX` commands, where XX = `rm`, `tt`, `up`, `md`, - `sf`, `bf` (#3488). Spans with a class are used when there is - nothing better. - + Expand `\newenvironment` macros (#987). - + Add support for LaTeX subfiles package (Marc Schreiber, #3530). - + Better support for subfigure package (#3577). - A figure with two subfigures turns into two pandoc - figures; the subcaptions are used and the main caption - ignored, unless there are no subcaptions. - + Add support for \vdots (Marc Schreiber, #3607). - + Add basic support for hyphenat package (Marc Schreiber, #3603). - + Add basic `\textcolor` support (Marc Schreiber). - + Add support for `tabularx` environment (Marc Schreiber, #3632). - + Better handling of comments inside math environments (#3113). - This solves a problem with commented out `\end{eqnarray}` inside - an eqnarray (among other things). - + Parse tikzpicture as raw verbatim environment if `raw_tex` extension - is selected (#3692). Otherwise skip with a warning. This is better - than trying to parse it as text! - + Add `\colorbox` support (Marc Schreiber). - + Set identifiers on Spans used for `\label`. - + Have `\setmainlanguage` set `lang` in metadata. - + Support etoolbox's `\ifstrequal`. - + Support `plainbreak`, `fancybreak` et al from the memoir class - (bucklereed, #3833). - + Support `\let`. Also, fix regular macros so they're expanded at the - point of use, and NOT also the point of definition. `\let` macros, - by contrast, are expanded at the point of definition. Added an - `ExpansionPoint` field to `Macro` to track this difference. - + Support simple `\def` macros. Note that we still don't support - macros with fancy parameter delimiters, like `\def\foo#1..#2{...}`. - + Support \chaptername, \partname, \abstractname, etc. (#3559, - obsoletes #3560). - + Put content of `\ref`, `\label`, `\eqref` commands into `Span` with - attributes, so they can be handled in filters (Marc Schreiber, #3639) - + Add Support for `glossaries` and `acronym` package (Marc Schreiber, - #3589). Acronyms are not resolved by the reader, but acronym and - glossary information is put into attributes on Spans so that they - can be processed in filters. - + Use `Link` instead of `Span` for `\ref`. This makes more sense - semantically and avoids unnecessary `Span [Link]` nestings when - references are resolved. - + Rudimentary support for `\hyperlink`. - + Support `\textquoteleft|right`, `\textquotedblleft|right` (#3849). - + Support `\lq`, `\rq`. - + Implement `\newtoggle`, `\iftoggle`, `\toggletrue|false` from etoolbox - (#3853). - + Support `\RN` and `\Rn`, from biblatex (bucklereed, #3854). - + Improved support for `\hyperlink`, `\hypertarget` (#2549). - + Support `\k` ogonek accent. - + Improve handling of accents. Handle ogonek, and fall back correctly - with forms like `\"{}`. - + Better support for ogonek accents. - + Support for `\faCheck` and `\faClose` (Marc Schreiber, #3727). - + Support for `xspace` (Marc Schreiber, #3797). - + Support `\setmainlanguage` or `\setdefaultlanguage` (polyglossia) - and `\figurename`. - + Better handling of `\part` in LaTeX (#1905). Now we parse chapters as - level 0 headers, and parts as level -1 headers. After parsing, we - check for the lowest header level, and if it's less than 1 we bump - everything up so that 1 is the lowest header level. So `\part` will - always produce a header; no command-line options are needed. - + Add block version of `\textcolor` (Marc Schreiber). - + `\textcolor` works as inline and block command (Marc Schreiber). - + `\textcolor` will be parse as span at the beginning of a paragraph - (Marc Schreiber). - + Read polyglossia/babel `\text(LANG){...}` (bucklereed) - + Improved handling of include files in LaTeX reader (#3971). - Previously `\include` wouldn't work if the included file - contained, e.g., a begin without a matching end. - + Support `\expandafter` (#3983). - + Handle `\DeclareRobustCommand` (#3983). Currently it's just treated - as a synonym for `\newcommand`. - + Handle `\lettrine` (Mauro Bieg). - - * Math improvements due to updates in texmath: - - + Improved handling of accents and upper/lower delimiters. - + Support for output in GNU eqn format (used with *roff). - + Allow `\boldsymbol` + a token without braces, and similarly - with other styling commands. - + Improve parsing of `\mathop` to allow multi-character operator names. - + Add thin space after math operators when "faking it with - unicode." - - * `walk` is now used instead of `bottomUp` in the `ToJSONFilter` - instance for `a -> [a]` (pandoc-types). Note that behavior - will be slightly different, since `bottomUp`'s treatment of - a function `[a] -> [a]` is to apply it to each sublist of a - list, while walk applies it only to maximal sublists. - Usually the latter behavior is what is wanted, and the - former can be simulated when needed. But there may be - existing filters that need to be rewritten in light of the - new behavior. Performance should be improved. - - * There are some changes to syntax highlighting due to revisions - in the `skylighting` library: - - + Support for `powershell` has been added, and many syntax - definitions have been updated. - + Background colors have been added to the `kate` style. - + The way highlighted code blocks are formatted in HTML has - been changed (David Baynard), in ways that may require - changes in hard-coded CSS affecting highlighting. - (If you haven't included hard-coded highlighting CSS in - your template, you needn't change anything.) - - - [API changes] - - * New module `Text.Pandoc.Class` (Jesse Rosenthal, John MacFarlane). - This contains definitions of the `PandocMonad` typeclass, the - `PandocIO` and `PandocPure` monads, and associated functions. - - * Changed types of all writers and readers. - - + We now use `Text` instead of `String` in the interface (#3731). - (We have not yet changed the internals of most readers to work - with `Text`, but making this change in the API now opens up a - path to doing that.) - + The result is now of form `m a` with constraint `PandocMonad m`. - Readers and writers can be combined to form monadic values which - can be run using either `runIO` or `runPure`. If `runIO` is used, - then both readers and writers will be able to do IO when needed - (for include files, for example); if `runPure` is used, - then the functions are pure and will not touch IO. - + Where previously you used - `writeRST def (readMarkdown def "[foo](url)")`, now you - would use - `runPure $ readMarkdown def (pack "[foo](url)") >>= writeRST def`. - - * New module `Text.Pandoc.Readers` (Albert Krewinkel). This - contains reader helper functions formerly defined in the - top-level `Text.Pandoc` module. - - + Changed `StringReader` -> `TextReader`. - + `getReader` now returns a pair of a reader and - `Extensions`, instead of building the extensions into the - reader (#3659). The calling code must explicitly set - `readerExtensions` using the `Extensions` returned. The - point of the change is to make it possible for the calling - code to determine what extensions are being used. - - * New module `Text.Pandoc.Writers` (Albert Krewinkel). - This contains writer helper functions formerly defined in the - top-level `Text.Pandoc` module. - - + Changed `StringWriter` -> `TextWriter`. - + `getWriter` now returns a pair of a reader and - `Extensions`, instead of building the extensions into the - reader (#3659). The calling code must explicitly set - `readerExtensions` using the `Extensions` returned. The - point of the change is to make it possible for the calling - code to determine what extensions are being used. - - * New module `Text.Pandoc.Lua`, exporting `runLuaFilter` (Albert Krewinkel, - #3514). - - * New module `Text.Pandoc.App`. This abstracts out the functionality - of the command line program (`convertWithOpts`), so it can be reproduced - e.g. in a desktop or web application. Instead of exiting, we throw errors - (#3548), which are caught (leading to exit) in pandoc.hs, but allow other - users of `Text.Pandoc.App` to recover. `pandoc.hs` is now a 2-liner. - The module also exports some utility functions for parsing options - and running filters. - - * New module `Text.Pandoc.Logging` (exported module) (#3392). - This now contains the `Verbosity` definition previously in - `Text.Pandoc.Options`, as well as a new `LogMessage` datatype that will - eventually be used instead of raw strings for warnings. This will enable - us, among other things, to provide machine-readable warnings if desired. - Include ToJSON instance and showLogMessage. This gives us the possibility - of both machine-readable and human-readable output for log messages. - - * New module `Text.Pandoc.BCP47`, with `getLang`, `Lang(..)`, `parseBCP47`. - - * New module `Text.Pandoc.Translations`, exporting `Term`, - `Translations`, `readTranslations`. - - * New module `Text.Pandoc.Readers.LaTeX.Types', exporting `Macro`, `Tok`, - `TokType`, `Line`, `Column`. - - * `Text.Pandoc.Error`: added many new constructors for `PandocError`. - - * Expose some previously private modules (#3260). These are often - helpful to people writing their own reader or writer modules: - - + `Text.Pandoc.Writers.Shared` - + `Text.Pandoc.Parsing` - + `Text.Pandoc.Asciify` - + `Text.Pandoc.Emoji` - + `Text.Pandoc.ImageSize` - + `Text.Pandoc.Highlighting` -` - * New module `Text.Pandoc.Extensions` (Albert Krewinkel): - Extension parsing and processing functions were defined in the top-level - `Text.Pandoc` module. These functions are moved to the Extensions - submodule as to enable reuse in other submodules. - - * Add `Ext_raw_attribute` constructor for `Extension`. - - * Add `Ext_fenced_divs` constructor for `Extension'. - - * Add `Ext_four_space_rule` constructor in `Extension`. - - * Add `Ext_gfm_auto_identifiers` constructor for `Extension`. - - * Add `Monoid` instance for `Extensions`. - - * Add `Text.Pandoc.Writers.Ms`, exporting `writeMs`. - - * Add `Text.Pandoc.Writers.JATS`, exporting `writeJATS`. - - * Add `Text.Pandoc.Writers.Muse`, exporting `writeMuse`. - - * Add `Text.Pandoc.Readers.Muse`, exporting `readMuse`. - - * Add `Text.Pandoc.Readers.TikiWiki`, exporting `readTikiWiki`. - - * Add `Text.Pandoc.Readers.Vimwiki`, exporting `readVimwiki`. - - * Add `Text.Pandoc.Readers.Creole`, exporting `readCreole`. - - * Export `setVerbosity` from `Text.Pandoc`. - - * `Text.Pandoc.Pretty`: Add `Eq` instance for `Doc`. - - * `Text.Pandoc.XML`: `toEntities`: changed type to `Text -> Text`. - - * `Text.Pandoc.UTF8`: - - + Export `fromText`, `fromTextLazy`, `toText`, `toTextLazy`. - Define `toString`, `toStringLazy` in terms of them. - + Add new functions parameterized on `Newline`: `writeFileWith`, - `putStrWith`, `putStrLnWith`, `hPutStrWith`, `hPutStrLnWith`. - - * `Text.Pandoc.MediaBag`: removed `extractMediaBag`. - - * `Text.Pandoc.Highlighting`: - - + `highlighting` now returns an Either rather than Maybe. - This allows us to display error information returned by the skylighting - library. Display a warning if the highlighting library throws an error. - + Add parameter for `SyntaxMap` to `highlight`. - - * `Text.Pandoc.Writers.Math`: - - + Export `defaultMathJaxURL`, `defaultKaTeXURL`. This will ensure that - we only need to update these in one place. - - * `Text.Pandoc.SelfContained`: - - + Removed `WriterOptions` parameter from `makeSelfContained`. - + Put `makeSelfContained` in PandocMonad instead of IO. This removes - the need to pass MediaBag around and improves exceptions. It also - opens up the possibility of using makeSelfContained purely. - + Export `makeDataURI`. - - * `Text.Pandoc.ImageSize`: - - + Export `lengthToDim`, new function `scaleDimension`. - + Export `inEm` from ImageSize (#3450). - + Change `showFl` and `show` instance for `Dimension` so - extra decimal places are omitted. - + Added `Em` as a constructor of `Dimension`. - + Add `WriterOptions` parameter to `imageSize` signature (Mauro Bieg). - - * `Text.Pandoc.Templates`: - - + Change type of `renderTemplate'`. Now it runs in `PandocMonad` - and raises a proper `PandocTemplateError` if there are problems, rather - than failing with uncatchable `error`. - + Change signature of `getDefaultTemplate`. Now it runs in any instance - of `PandocMonad`, and returns a `String` rather than an `Either` value. - And it no longer takes a `datadir` parameter, since this can be - retrieved from `CommonState`. - - * `Text.Pandoc.Options`: - - + Added `writerEpubSubdirectory` to `WriterOptions` (#3720). - The EPUB writer now takes its EPUB subdirectory from this option. - + In `WriterOptions`, rename `writerLaTeXEngine` to `writerPdfEngine` - and `writerLaTeXArgs` to `writerPdfArgs` (Mauro Bieg, #3909). - + Add `writerSyntaxMap` to `WriterOptions`. - + Removed `writerEpubStylesheet` from `WriterOptions`. - + Remove `writerUserDataDir` from `WriterOptions`. It is now carried - in `CommonState` in `PandocMonad` instances. (And thus it can be used - by readers too.) - + Changed `writerEpubMetadata` to a `Maybe String`. - + Removed `readerApplyMacros` from `ReaderOptions`. Now we just check - the `latex_macros` reader extension. - + FromJSON/ToJSON instances for `ReaderOptions`. - + In `HTMLMathMethod`, the `KaTeX` contsructor now takes only - one string (for the KaTeX base URL), rather than two. - + Removed `writerSourceURL` from `WriterOptions`. We now use - `stSourceURL` in `CommonState`, which is set by `setInputFiles`. - - * `Text.Pandoc.Shared`: - - + `tabFilter` now takes a `Text`, not `String`. - + `openURL`: Changed type from an Either. Now it will just raise - an exception to be trapped later. - + Remove `normalizeSpaces` (#1530). - + Remove `warn`. (Use `report` from `Text.Pandoc.Class` instead.) - + Export a new function `crFilter`. - + Add `eastAsianLineBreakFilter` (previously in Markdown reader). - + Provide custom `isURI` that rejects unknown schemes. - (Albert Krewinkel, #2713). We also export the set of known - `schemes`. The new function replaces the function of the same name - from `Network.URI`, as the latter did not check whether a scheme is - well-known. All official IANA schemes (as of 2017-05-22) are - included in the set of known schemes. The four non-official schemes - `doi`, `isbn`, `javascript`, and `pmid` are kept. - + Remove `err`. - + Remove `readDataFile`, `readDefaultDataFile`, `getReferenceDocx`, - `getReferenceODT`. These now live in `Text.Pandoc.Class`, - where they are defined in terms of `PandocMonad` - primitives and have different signatures. - + Remove `openURL`. Use `openURL` from `Text.Pandoc.Class` instead. - + Add `underlineSpan`. - - * `Text.Pandoc.Readers.HTML`: export new `NamedTag` class. - - * `Text.Pandoc.Readers.Markdown`: remove `readDocxWithWarnings`. - With the new API one can simply use `getLog` after running - the reader. - - * `Text.Pandoc.Readers.LaTeX`: Changed types for `rawLaTeXInline` - and `rawLaTeXBlock`. (Both now return a `String`, and they are - polymorphic in state.) - - - [bug fixes and under-the-hood improvements] - - * TEI writer: Added identifiers on `<div>` elements. - - * DokuWiki reader: Better handling for code block in list item (#3824). - - * Custom writer: Remove old preprocesesor conditionals (Albert Krewinkel). - - * ZimWiki writer: Removed internal formatting from note and table cells, - because ZimWiki does not support it (Alex Ivkin, #3446). - - * MediaWiki writer: - - + Updated list of syntax highlighting languages (#3461). - Now `r` gets you `<source>` rather than `<code>` (among others). - + Add display attribute on `<math>` tags (#3452). This allows display - math to be rendered properly. - + Remove newline before `</ref>` (#2652). - + Don't softbreak lines inside list items (#3531). - - * Org writer: - - + Reduce to two spaces after bullets (#3417, Albert Krewinkel). - + Add unit tests (Alexander Krotov). - + Stop using raw HTML to wrap divs (Albert Krewinkel, #3771). - + Do not strip `#` from Org anchor links (Alexander Krotov). - - * CommonMark writer: - - + Avoid excess blank lines at end of output. - + Prefer pipe tables to HTML tables even if it means losing relative - column width information (#3734). - + Support table, strikethrough extensions, when enabled (as with gfm). - Note that we bypass the commonmark writer from cmark and construct our - own pipe tables, with better results. - + Properly support `--wrap=none`. - + Use smallcaps class for `SmallCaps` (#1592). - + Omit "fig:" prefix in image titles. This is used internally to - indicate internal figures. - - * RST writer: - - + Properly handle table captions. - + Don't wrap lines in in definition list terms. Wrapping is not allowed. - + Implemented `+/-smart` and improved escaping with `+smart`. - + Add empty comments when needed to avoid including a blockquote - in the indented content of a preceding block (#3675). - + Improve grid table output, fix bug with empty rows (#3516). - Uses the new `gridTable` in Writers.Shared, which is here - improved to better handle 0-width cells. - + Remove space at beginning/end of RST code span (#3496). Otherwise - we get invalid RST. There seems to be no way to escape the space. - + Add header anchors when header has non-standard id (#3937). - + Correctly handle inline code containing backticks, using a `:literal:` - role (#3974). - + Don't backslash-escape word-internal punctuation (#3978). - - * Markdown writer: - - + Don't include variables in metadata blocks. Previously variables set - on the command line were included in e.g. YAML metadata, contrary to - documentation and intentions. - + Improved escaping with `+smart`. - + Fixed grid tables embedded in grid tables (#2834). - + Use span with class 'smallcaps' for SmallCaps, instead of a style - attribute as before (#1592). - + Escape initial `%` in a paragraph if the `pandoc_title_blocks` - extension is enabled (#3454). Otherwise in a document starting with - a literal `%` the first line is wrongly interpreted as a title. - + Fixed false ordered lists in YAML metadata (#3492, #1685). Now we - properly escape things that would otherwise start ordered lists, - such as - - --- - title: 1. inline - ... - + Better handling of tables with empty columns (#3337). We now - calculate the number of columns based on the longest row (or the - length of aligns or widths). - + Escape unordered list markers at beginning of paragraph (#3497), to - avoid false interpretation as a list. - + Escape `|` appropriately. - + Ensure space before list at top level (#3487). - + Avoid spurious blanklines at end of document after tables and list, - for example. - + Fixed bugs in simple/multiline list output (#3384). - Previously we got overlong lists with `--wrap=none`. This is fixed. - Previously a multiline list could become a simple list (and would - always become one with `--wrap=none`). - + Don't emit a simple table if `simple_tables` disabled (#3529). - + Case-insensitive reference links (David A Roberts, #3616). - Ensure that we do not generate reference links whose labels differ only - by case. Also allow implicit reference links when the link - text and label are identical up to case. - + Put space before reference link definitions (Mauro Bieg, #3630). - + Better escaping for links (David A. Roberts, #3619). Previously the - Markdown writer would sometimes create links where there were none - in the source. This is now avoided by selectively escaping bracket - characters when they occur in a place where a link might be created. - + Added missing `\n` (David A. Roberts, #3647). - + Fixed duplicated reference links with `--reference-links` - and `--reference-location=section` (#3674). Also ensure that there - are no empty link references `[]`. - + Avoid inline surround-marking with empty content (#3715). - E.g. we don't want `<strong></strong>` to become `****`. - Similarly for emphasis, super/subscript, strikeout. - + Don't allow soft break in header (#3736). - + Make sure `plain`, `markdown_github`, etc. work for raw. - Previously only `markdown` worked. Note: currently a raw block labeled - `markdown_github` will be printed for any `markdown` format. - + Ensure that `+` and `-` are escaped properly so they don't cause - spurious lists (#3773). Previously they were only - if succeeded by a space, not if they were at end of line. - + Use pipe tables if `raw_html` disabled and `pipe_tables` enabled, - even if the table has relative width information (#3734). - + Markdown writer: don't crash on `Str ""`. - + Make `Span` with null attribute transparent. That is, we don't use - brackets or `<span>` tags to mark spans when there are no attributes; - we simply output the contents. - + Escape pipe characters when `pipe_tables` enabled (#3887). - + Better escaping of `<` and `>`. If `all_symbols_escapable` is set, - we backslash escape these. Otherwise we use entities as before. - + When writing plain, don't use ` ` to separate list and indented - code. There's no need for it in this context, since this isn't to be - interpreted using Markdown rules. - + Preserve classes in JS obfuscated links (Timm Albers, #2989). - HTML links containing classes originally now preserve them when using - JavaScript email obfuscation. - + Render `SmallCaps` as a native span when `native_spans` are enabled. - + Always write attributes with `bracketed_spans` (d-dorazio). - - * Man writer: - - + Fix handling of nested font commands (#3568). Previously pandoc emitted - incorrect markup for bold + italic, for example, or bold + code. - + Avoid error for definition lists with no definitions (#3832). - - * DocBook writer: - - + Fix internal links with `writerIdentifierPrefix opt` - (#3397, Mauro Bieg). - - * Docx writer: - - + Don't include bookmarks on headers unless non-null id (#3476). - + Support 9 levels of headers (#1642). - + Allow 9 list levels (#3519). - + Don't take `distArchive` from datadir (#3322). The docx writer takes - components from the distribution's version of `reference.docx` when it - can't find them in a user's custom `reference.docx`. Previously, we - allowed a `reference.docx` in the data directory (e.g. `~/.pandoc`) - to be used as the distribution's reference.docx. This led to a - bizarre situation where pandoc would produce a good docx using - `--template ~/.pandoc/ref.docx`, but if `ref.docx` were moved to - `~/.pandoc/reference.docx`, it would then produce a corrupted docx. - + Fixed handling of soft hyphen (0173) (#3691). - + Better handling of keywords (#3719). - + Cleaner code for handling dir and style attributes for `Div`. - + Use `Set` for dynamic styles to avoid duplicates. - + Removed redundant element from data/docx/word/numbering.xml. - The elements we need are generated when the document is - compiled; this didn't do anything. - + Activate `evenAndOddHeaders` from reference docx (#3901, - Augustín Martín Barbero). - - * ODT/OpenDocument writer: - - + Calculate aspect ratio for percentage-sized images (Mauro Bieg, #3239). - + Use more widely available bullet characters (#1400). The old - characters weren't available in some font sets. These seem to work - well on Windows and Linux versions of LibreOffice. - + Wider labels for lists (#2421). This avoids overly narrow labels for - ordered lists with `()` delimiters. However, arguably it creates - overly wide labels for bullets. Also, lists now start flush with - the margin, rather than indented. - + Fixed dropped elements in some ordered lists (#2434). - - * FB2 writer: - - + Don't render `RawBlock` as code. - + Don't fail with an error on interior headers (e.g. in list) (#3750). - Instead, omit them with an INFO message. - + Add support for "lang" metadata (Alexander Krotov, #3625). - + Format `LineBlock` as poem (Alexander Krotov). Previously writer - produced one paragraph with `<empty-line/>` elements, which are not - allowed inside `<p>` according to FB2 schema. - + Replace `concatMap` with `cMap` (Alexander Krotov). - + Write FB2 lists without nesting blocks inside `<p>` (Alexander - Krotov, #4004) - - * HTML writer: - - + Make sure `html4`, `html5` formats work for raw blocks/inlines. - + Render raw inline environments when `--mathjax` used (#3816). - We previously did this only with raw blocks, on the assumption - that math environments would always be raw blocks. This has changed - since we now parse them as inline environments. - + Ensure we don't get two style attributes for width and height. - + Report when not rendering raw inline/block. - + Issue warning if no title specified and template used (#3473). - + Info message if `lang` is unspecified (#3486). - + Removed unused parameter in `dimensionsToAttributeList`. - + Avoid two class attributes when adding `uri` class (#3716). - + Fix internal links with `writerIdentifierPrefix opt` (#3397, Mauro - Bieg). - + Use revealjs's math plugin for mathjax (#3743). This is a thin - wrapper around mathjax that makes math look better on revealjs. - + Slidy: use h1 for all slides, even if they were originally - level 2 headers (#3566). Otherwise the built-in table of contents - in Slidy breaks. - - * LaTeX writer: - - + Don't render LaTeX images with data: URIs (#3636). Note that - `--extract-media` can be used when the input contains data: URIs. - + Make highlighted code blocks work in footnotes (Timm Albers). - + Don't use figure inside table cell (#3836). - + Use proper code for list enumerators (#3891). This should fix problems - with lists that don't use arabic numerals. - + Always add hypertarget when there's a non-empty identifier (#2719). - Previously the hypertargets were only added when there was actually - a link to that identifier. - + Use `%` after hypertarget before code block. - + Add `\leavevmode` before hypertarget at start of paragraph (#2704, - fixes formatting problems in beamer citations). - + Don't use `lstinline` in \item[..] (#645). If you do, the contents - of item disappear or are misplaced. Use `\texttt` instead. - + Fix problem with escaping in `lstinline` (#1629). Previously the - LaTeX writer created invalid LaTeX when `--listings` was specified and - a code span occurred inside emphasis or another construction. - + Fix error with line breaks after empty content (#2874). LaTeX - requires something before a line break, so we insert a `~` if no - printable content has yet been emitted. - + Use BCP47 parser. - + Fixed detection of otherlangs (#3770). We weren't recursing into - inline contexts. - + Handle language in inline code with `--listings` (#3422). - + Write euro symbol directly in LaTeX (Andrew Dunning, #3801). - The textcomp package allows pdfLaTeX to parse `€` directly, making the - `\euro` command unneeded. - + Fixed footnotes in table captions (#2378). Note that if the table has - a first page header and a continuation page header, the notes will - appear only on the first occurrence of the header. - + In `writeBeamer` output, allow hyperlinks to frames (#3220). - Previously you could link to a header above or below slide level but - not *to* slide level. This commit changes that. Hypertargets are - inserted inside frame titles; technically the reference is to just - after the title, but in normal use (where slides are viewed full - screen in a slide show), this does not matter. - + Remove `\strut` at beginning of table cells (#3436). This fixes a - problem with alignment of lists in table cells. The `\strut` at the - end seems to be enough to avoid the too-close spacing that motivated - addition of the strut in #1573. - + Add partial siunitx Support (Marc Schreiber, #3588). - - * ConTeXt writer: - - + Refactored to use BCP47 module. - + Remove unnecessary `$` (Alexander Krotov, #3482). - + Use header identifiers for chapters (#3968). - - * EPUB writer: - - + `title_page.xhtml` is now put in `text/`. - + Don't strip formatting in TOC (#1611). - - * Textile reader: - - + Fix bug for certain links in table cells (#3667). - + Allow 'pre' code in list item (#3916). - - * HTML reader: - - + Added warnings for ignored material (#3392). - + Better sanity checks to avoid parsing unintended things as - raw HTML in the Markdown reader (#3257). - + Revise treatment of `li` with `id` attribute (#3596). Previously we - always added an empty div before the list item, but this created - problems with spacing in tight lists. Now we do this: If the list - item contents begin with a `Plain` block, we modify the `Plain` - block by adding a `Span` around its contents. Otherwise, we add a - `Div` around the contents of the list item (instead of adding an - empty `Div` to the beginning, as before). - + Add `details` tag to list of block tags (#3694). - + Removed `button` from block tag list (#3717). It is already in the - `eitherBlockOrInlineTag` list, and should be both places. - + Use `Set`s instead of lists for block tag lookup. - + Rewrote to use `Text` throughout. Effect on memory usage is modest - (< 10%). - + Use the lang value of `<html>` to set the lang meta value (bucklereed, - #3765). - + Ensure that paragraphs are closed properly when the parent block - element closes, even without `</p>` (#3794). - + Parse `<figure>` and `<figcaption>` (Mauro Bieg, #3813). - + Parse `<main>` like `<div role=main>` (bucklereed, #3791). - `<main>` closes `<p>` and behaves like a block element generally - + Support column alignments (#1881). These can be set either - with a `width` attribute or with `text-width` in a `style` attribute. - + Modified state type to be an instance of `HasLogMessages`, so - `registerHeader` can issue warnings. - + `</td>` or `</th>` should close any open block tag (#3991). - + `<td>` should close an open `<th>` or `<td>`. - + `htmlTag` improvements (#3989). We previously failed on cases - where an attribute contained a `>` character. This patch fixes the - bug, which especially affects raw HTML in Markdown. - - * Txt2Tags reader: - - + Newline is not indentation (Alexander Krotov). - - * MediaWiki reader: - - + Allow extra hyphens after `|-` in tables (#2649). - + Allow blank line after table start (#2649). - + Fixed more table issues (#2649). - + Ensure that list starts begin at left margin (#2606). Including when - they're in tables or other list items. - + Make smart double quotes depend on `smart` extension (#3585). - + Don't do curly quotes inside `<tt>` contexts (#3585). Even if `+smart`. - + Modified state type to be an instance of `HasLogMessages`, so - `registerHeader` can issue warnings. - - * TWiki reader (Alexander Krotov): - - + Remove unnecessary `$` (#3597). - + Simplify `linkText` (#3605). - - * EPUB reader: - - + Minor refactoring, avoiding explicit MediaBag handling. - This all works behind the scenes in CommonState plumbing. - - * Docx reader: - - + Don't drop smartTag contents (#2242). - + Handle local namespace declarations (#3365). Previously we didn't - recognize math, for example, when the xmlns declaration occurred on - the element and not the root. - + More efficient trimSps (#1530). Replacing `trimLineBreaks`. This - does the work of `normalizeSpaces` as well, so we avoid the need for - that function here. - + Avoid 0-level headers (Jesse Rosenthal, #3830). We used to parse - paragraphs styled with "HeadingN" as "nth-level header." But if a - document has a custom style named "Heading0", this will produce a - 0-level header, which shouldn't exist. We only parse this style - if N>0. Otherwise we treat it as a normal style name, and - follow its dependencies, if any. - + Add tests for avoiding zero-level header (Jesse Rosenthal). - - * ODT reader: - - + Replaced `collectRights` with Rights from `Data.Either`. - + Remove dead code (Albert Krewinkel). - - * Org reader (Albert Krewinkel, unless noted). - - + Don't allow tables inside list items (John MacFarlane, #3499). - + Disallow tables on list marker lines (#3499). - + Convert markup at beginning of footnotes (John MacFarlane, #3576). - + Allow emphasized text to be followed by `[` (#3577). - + Handle line numbering switch for src blocks. - The line-numbering switch that can be given to source blocks (`-n` with - an start number as an optional parameter) is parsed and translated to a - class/key-value combination used by highlighting and other readers and - writers. - + Stop adding rundoc prefix to src params. Source block parameter names - are no longer prefixed with `rundoc`. This was intended to simplify - working with the rundoc project, a babel runner. However, the rundoc - project is unmaintained, and adding those markers is not the reader's - job anyway. The original language that is specified for a source - element is now retained as the `data-org-language` attribute and only - added if it differs from the translated language. - + Allow multi-word arguments to src block params (#3477). The reader now - correctly parses src block parameter list even if parameter arguments - contain multiple words. - + Avoid creating `nullMeta` by applying `setMeta` directly - (Alexander Krotov). - + Replace `sequence . map` with `mapM`. - + Fix smart parsing behavior. Parsing of smart quotes and special - characters can either be enabled via the `smart` language extension or - the `'` and `-` export options. Smart parsing is active if either the - extension or export option is enabled. Only smart parsing of special - characters (like ellipses and en and em dashes) is enabled by default, - while smart quotes are disabled. Previously, all smart parsing was - disabled unless the language extension was enabled. - + Subject full doc tree to headline transformations (Albert Krewinkel, - #3695). Emacs parses org documents into a tree structure, which is - then post-processed during exporting. The reader is changed to do the - same, turning the document into a single tree of headlines starting - at level 0. - + Fix cite parsing behaviour (Herwig Stuetz). Until now, `org-ref` - cite keys included special characters also at the end. This caused - problems when citations occur right before colons or at the end of - a sentence. With this change, all non alphanumeric characters at - the end of a cite key are ignored. This also adds `,` to the list - of special characters that are legal in cite keys to better mirror - the behaviour of org-export. - + Fix module names in haddock comments. Copy-pasting had lead to - haddock module descriptions containing the wrong module names. - + Recognize babel result blocks with attributes (#3706). Babel - result blocks can have block attributes like captions and names. - Result blocks with attributes were not recognized and were parsed - as normal blocks without attributes. - + Include tags in headlines. The Emacs default is to include tags in the - headline when exporting. Instead of just empty spans, which contain the - tag name as attribute, tags are rendered as small caps and wrapped in - those spans. Non-breaking spaces serve as separators for multiple tags. - + Respect export option for tags (#3713). Tags are appended to - headlines by default, but will be omitted when the `tags` export option - is set to nil. - + Use `tag-name` attribute instead of `data-tag-name`. - + Use `org-language` attribute rather than `data-org-language`. - + Modified state type to be an instance of `HasLogMessages`, so - `registerHeader` can issue warnings. - + End footnotes after two blank lines. Footnotes can not only be - terminated by the start of a new footnote or a header, but also by two - consecutive blank lines. - + Update emphasis border chars (#3933). The org reader was updated to - match current org-mode behavior: the set of characters which are - acceptable to occur as the first or last character in an org emphasis - have been changed and now allows all non-whitespace chars at the - inner border of emphasized text (see `org-emphasis-regexp-components`). - - * RST reader: - - + Fixed small bug in list parsing (#3432). Previously the parser didn't - handle properly this case: - - * - a - - b - * - c - - d - + Handle multiline cells in simple tables (#1166). - + Parse list table directive (Keiichiro Shikano, #3432). - + Make use of `anyLineNewline` (Alexander Krotov, #3686). - + Use `anyLineNewline` in `rawListItem` (Alexander Krotov, #3702). - + Reorganize block parsers for ~20% faster parsing. - + Fixed `..include::` directive (#3880). - + Handle blank lines correctly in line blocks (Alexander Krotov, #3881). - Previously pandoc would sometimes combine two line blocks separated - by blanks, and ignore trailing blank lines within the line block. - + Fix indirect hyperlink targets (#512). - - * Markdown reader: - - + Allow attributes in reference links to start on next line (#3674). - + Parse YAML metadata in a context that sees footnotes defined in - the body of the document (#1279). - + When splitting pipe table cells, skip tex math (#3481). - You might have a `|` character inside math. (Or for that matter - something that the parser might mistake for raw HTML.) - + Treat span with class `smallcaps` as SmallCaps. - This allows users to specify small caps in Markdown this way: - `[my text]{.smallcaps}` (#1592). - + Fixed internal header links (#2397). - This patch also adds `shortcut_reference_links` to the list - of mmd extensions. - + Treat certain environments as inline - when they occur without space surrounding them (#3309, #2171). - E.g. equation, math. This avoids incorrect vertical space - around equations. - + Optimized `nonindentSpaces`. Makes the benchmark go from 40 to 36 ms. - + Allow latex macro definitions indented 1-3 spaces. - Previously they only worked if nonindented. - + Improved parsing of indented raw HTML blocks (#1841). - Previously we inadvertently interpreted indented HTML as - code blocks. This was a regression. We now seek to determine the - indentation level of the contents of an HTML block, and (optionally) - skip that much indentation. As a side effect, indentation may be - stripped off of raw HTML blocks, if `markdown_in_html_blocks` is - used. This is better than having things interpreted as indented - code blocks. - + Fixed smart quotes after emphasis (#2228). E.g. in `*foo*'s 'foo'`. - + Warn for notes defined but not used (#1718). - + Use `anyLineNewline` (Alexander Krotov). - + Interpret YAML metadata as Inlines when possible (#3755). If - the metadata field is all on one line, we try to interpret it as - Inlines, and only try parsing as Blocks if that fails. If it - extends over one line (including possibly the `|` or `>` character - signaling an indented block), then we parse as Blocks. This was - motivated by some German users finding that `date: '22. Juin 2017'` - got parsed as an ordered list. - + Fixed spurious parsing as citation as reference def (#3840). - We now disallow reference keys starting with `@` if the - `citations` extension is enabled. - + Parse `-@roe` as suppress-author citation (pandoc-citeproc#237). - Previously only `[-@roe]` (with brackets) was recognized as - suppress-author, and `-@roe` was treated the same as `@roe`. - + Fixed parsing of fenced code after list when there is no intervening - blank line (#3733). - + Allow raw latex commands starting with `\start` (#3558). Previously - these weren't allowed because they were interpreted as starting - ConTeXt environments, even without a corresponding `\stop`... - + Added `inlines`, `inlines1`. - + Require nonempty alt text for `implicit_figures` (#2844). - A figure with an empty caption doesn't make sense. - + Removed texmath macro material; now all this is handled - in the LaTeX reader functions. - + Fixed bug with indented code following raw LaTeX (#3947). - - * LaTeX reader: - - + Rewrote LaTeX reader with proper tokenization (#1390, - #2118, #3236, #3779, #934, #982). This rewrite is primarily - motivated by the need to get macros working properly. A side benefit - is that the reader is significantly faster. We now tokenize the - input text, then parse the token stream. Macros modify the token - stream, so they should now be effective in any context, including - math. Thus, we no longer need the clunky macro processing - capacities of texmath. - + Parse `\,` to `\8198` (six-per-em space) (Henri Werth). - + Allow `\newcommand\foo{blah}` without braces. - + Support `\lstinputlisting` (#2116). - + Issue warnings when skipping unknown latex commands (#3392). - + Include contents of `\parbox`. - + Allow `\hspace` and `\vspace` to count as raw block or inline. - Previously we would refuse to parse anything as raw inline if - it was in the `blockCommands` list. Now we allow exceptions - if they're listed under ignoreInlines in inlineCommands. - This should make it easier e.g. to include an `\hspace` - between two side-by-side raw LaTeX tables. - + Don't drop contents of `\hypertarget`. - + Handle spaces before `\cite` arguments. - + Allow newpage, clearpage, pagebreak in inline contexts as well as - block contexts (#3494). - + Treat `{{xxx}}` the same as `{xxx}` (#2115). - + Use `pMacroDefinition` in macro (for more direct parsing). - Note that this means that `macro` will now parse one - macro at a time, rather than parsing a whole group together. - + Fixed failures on \ref{}, \label{} with `+raw_tex`. Now these - commands are parsed as raw if `+raw_tex`; otherwise, their argument - is parsed as a bracketed string. - + Don't crash on empty `enumerate` environment (#3707). - + Handle escaped `&` inside table cell (#3708). - + Handle block structure inside table cells (#3709). `minipage` is no - longer required. - + Handle some width specifiers on table columns (#3709). Currently - we only handle the form `0.9\linewidth`. Anything else would have - to be converted to a percentage, using some kind arbitrary assumptions - about line widths. - + Make sure `\write18` is parsed as raw LaTeX. The change is in the - LaTeX reader's treatment of raw commands, but it also affects the - Markdown reader. - + Fixed regression with starred environment names (#3803). - + Handle optional args in raw `\titleformat` (#3804). - + Improved heuristic for raw block/inline. An unknown command at the - beginning of the line that could be either block or inline is - treated as block if we have a sequence of block commands followed by - a newline or a `\startXXX` command (which might start a raw ConTeXt - environment). - + Don't remove macro definitions from the output, even if - `Ext_latex_macros` is set, so that macros will be applied. - Since they're only applied to math in Markdown, removing the macros - can have bad effects. Even for math macros, keeping them should be - harmless. - + Removed `macro`. It is no longer necessary, since the - `rawLaTeXBlock` parser will parse macro definitions. This also avoids - the need for a separate `latexMacro` parser in the Markdown reader. - + Use `label` instead of `data-label` for label in caption (#3639). - + Fixed space after \figurename etc. - + Resolve references to section numbers. - + Fix `\let\a=0` case, with single character token. - + Allow `@` as a letter in control sequences. `@` is commonly used - in macros using `\makeatletter`. Ideally we'd make the tokenizer - sensitive to `\makeatletter` and `\makeatother`, but until then this - seems a good change. - + Track header numbers and correlate with labels. - + Allow `]` inside group in option brackets (#3857). - + lstinline with braces can be used (verb cannot be used with braces) - (Marc Schreiber, #3535). - + Fix keyval function: pandoc did not parse options in braces correctly - (Marc Schreiber, #3642). - + When parsing raw LaTeX commands, include trailing space (#1773). - Otherwise things like `\noindent foo` break and turn into - `\noindentfoo`. Affects `-f latex+raw_tex` and `-f markdown` (and other - formats that allow `raw_tex`). - + Don't treat "..." as Quoted (#3958). This caused quotes to be omitted in - `\texttt` contexts. - + Add tests for existing `\includegraphics` behaviour (Ben Firshman). - + Allow space before `=` in bracketd options (Ben Firshman). - + Be more forgiving in parsing command options. This was needed, for - example, to make some minted options work. - + Strip off quotes in `\include` filenames. - - * Added `Text.Pandoc.CSV`, simple (unexported) CSV parser. - - * `Text.Pandoc.PDF`: - - + Got `--resource-path` working with PDF output (#852). - + Fetch images when generating PDF via context (#3380). - To do this, we create the temp directory as a subdirectory - of the working directory. Since context mk IV by default looks - for images in the parent directory, this works. - + Use `report` instead of `warn`, make it sensitive to verbosity settings. - + Use `fillMediaBag` and `extractMedia` to extract media to temp dir. - This reduces code duplication. - + `html2pdf`: use stdin instead of intermediate HTML file - + Removed useless `TEXINPUTS` stuff for `context2pdf`. mkiv context - doesn't use `TEXINPUTS`. - - * `Text.Pandoc.Pretty`: - - + Simplified definition of `realLength`. - + Don't error for blocks of size < 1. Instead, resize to 1 (see #1785). - - * `Text.Pandoc.MIME`: - - + Use `application/javascript` (not `application/x-javascript`). - + Added `emf` to mimeTypes with type `application/x-msmetafile` (#1713). - - * `Text.Pandoc.ImageSize`: - - + Improve SVG image size code (Marc Schreiber, #3580). - + Make `imageSize` recognize basic SVG dimensions (Mauro Bieg, #3462). - - * Use `Control.Monad.State.Strict` throughout. This gives 20-30% speedup - and reduction of memory usage in most of the writers. - - * Use `foldrWithKey` instead of deprecated `foldWithKey`. - - * `Text.Pandoc.SelfContained`: - - + Fixed problem with embedded fonts (#3629). - + Refactored getData from `getDataURI` in `SelfContained`. - + Don't use data URIs for script or style (#3423). Instead, just use - script or style tags with the content inside. The old method with - data URIs prevents certain optimizations outside pandoc. Exception: - data URIs are still used when a script contains `</script>` or a - style contains `</`. - + SelfContained: Handle URL inside material retrieved from a URL - (#3629). This can happen e.g. with an @import of a google web font. - (What is imported is some CSS which contains an url reference - to the font itself.) Also, allow unescaped pipe (|) in URL. - + Load resources from `data-src` (needed for lazy loading in - reveal.js slide shows). - + Handle `data-background-image` attribute on section (#3979). - - * `Text.Pandoc.Parsing`: - - + Added `indentWith` (Alexander Krotov, #3687). - + Added `stateCitations` to `ParserState`. - + Removed `stateChapters` from `ParserState`. - + In `ParserState`, make `stateNotes'` a Map, add `stateNoteRefs`. - + Added `gobbleSpaces` and `gobbleAtMostSpaces`. - + Adjusted type of `insertIncludedFile` so it can be used with token - parser. - + Replace old texmath macro stuff from Parsing. Use Macro from - Text.Pandoc.Readers.LaTeX.Types instead. - + Export `insertIncludedFile`. - + Added `HasLogMessages`, `logMessage`, `reportLogMessages` (#3447). - + Replace partial with total function (Albert Krewinkel). - + Introduce `HasIncludeFiles` type class (Albert Krewinkel). The - `insertIncludeFile` function is generalized to work with all parser - states which are instances of that class. - + Add `insertIncludedFilesF` which returns F blocks (Albert Krewinkel). - The `insertIncludeFiles` function was generalized and renamed - to `insertIncludedFiles'`; the specialized versions are based on that. - + `many1Till`: Check for the end condition before parsing (Herwig - Stuetz). By not checking for the end condition before the first - parse, the parser was applied too often, consuming too much of the - input. This only affects `many1Till p end` where `p` matches on a - prefix of `end`. - + Provide `parseFromString` (#3690). This is a version of - `parseFromString` specialied to ParserState, which resets - `stateLastStrPos` at the end. This is almost always what we want. - This fixes a bug where `_hi_` wasn't treated as emphasis in the - following, because pandoc got confused about the position of the - last word: `- [o] _hi_`. - + Added `takeP`, `takeWhileP` for efficient parsing of `[Char]`. - + Fix `blanklines` documentation (Alexander Krotov, #3843). - + Give less misleading line information with `parseWithString`. - Previously positions would be reported past the end of the chunk. - We now reset the source position within the chunk and report - positions "in chunk." - + Add `anyLineNewline` (Alexander Krotov). - + Provide shared F monad functions for Markdown and Org readers - (Albert Krewinkel). The `F` monads used for delayed evaluation - of certain values in the Markdown and Org readers are based on a - shared data type capturing the common pattern of both `F` types. - + Add `returnF` (Alexander Krotov). - + Avoid parsing `Notes:**` as a bare URI (#3570). This avoids parsing - bare URIs that start with a scheme + colon + `*`, `_`, or `]`. - + Added `readerAbbreviations` to `ParserState`. Markdown reader - now consults this to determine what is an abbreviation. - + Combine grid table parsers (Albert Krewinkel, #3638). The grid table - parsers for markdown and rst was combined into one single - parser `gridTable`, slightly changing parsing behavior of both - parsers: (1) The markdown parser now compactifies block content - cell-wise: pure text blocks in cells are now treated as paragraphs - only if the cell contains multiple paragraphs, and as plain blocks - otherwise. Before, this was true only for single-column tables. (2) - The rst parser now accepts newlines and multiple blocks in header - cells. - + Generalize tableWith, gridTableWith (Albert Krewinkel). - The parsing functions `tableWith` and `gridTableWith` are generalized - to work with more parsers. The parser state only has to be an - instance of the `HasOptions` class instead of requiring a concrete - type. Block parsers are required to return blocks wrapped into a - monad, as this makes it possible to use parsers returning results - wrapped in `Future`s. - - * `Text.Pandoc.Shared`: - - + Simplify `toRomanNumeral` using guards (Alexander Krotov, #3445) - + `stringify`: handle Quoted better (#3958). Previously we were losing - the quotation marks in Quoted elements. - - * `Text.Pandoc.Writers.Shared`: - - + Export `metaToJSON'`, `addVariablesToJSON` (#3439). - This allows us to add the variables AFTER using the metadata - to generate a YAML header (in the Markdown writer). - + Added `unsmartify` (previously in RST writer). - Undo literal double curly quotes. Previously we left these. - + Generalize type of `metaToJSON` so it can take a Text. Previously a - String was needed as argument; now any ToJSON instance will do. - + Added `gridTable` (previously in Markdown writer). - + `gridTable`: Refactored to use widths in chars. - + `gridTable`: remove unnecessary extra space in cells. - + Fixed `addVariablesToJSON`. It was previously not allowing multiple - values to become lists. - + Pipe tables: impose minimum cell size (see #3526). - - - [default template changes] - - * HTML templates (including EPUB and HTML slide show templates): - - + Make default.html5 polyglot markup conformant (John Luke Bentley, - #3473). Polyglot markup is HTML5 that is also valid XHTML. See - <https://www.w3.org/TR/html-polyglot>. With this change, pandoc's - html5 writer creates HTML that is both valid HTML5 and valid XHTML. - + Regularized CSS in html/epub/html slide templates (#3485). - All templates now include `code{white-space: pre-wrap}` - and CSS for `q` if `--html-q-tags` is used. Previously some templates - had `pre` and others `pre-wrap`; the `q` styles were only sometimes - included. - + CSS for `.smallcaps`, (Mauro Bieg, #1592) - + `default.revealjs`: make `history` default to true. - + `default.revealjs`: use lazy loading (#2283). - + `default.revealjs`: add `mathjax` variable and some conditional code - to use the MathJaX plugin. - + `default.slidy` uses `https` instead of `http` (ickc, #3848). - + `default.dzslides`: Load Google Font using HTTPS by default - (Yoan Blanc). - - * DocBook5 template: Use `lang` and `subtitle` variables (Jens Getreu, - #3855). - - * LaTeX/Beamer template: - - + Combine LaTeX/Beamer templates (Andrew Dunning, #3878). - `default.beamer` has been removed; beamer now uses the - `default.latex` template. Beamer-specific parts are conditional - on the `beamer` variable set by the writer. Note that - `pandoc -D beamer` will return this (combined) template. - + Use `xcolor` for `colorlinks` option (Andrew Dunning, #3877). - Beamer loads `xcolor` rather than `color`, and thus the - `dvipsnames` option doesn't take effect. This also provides a wider - range of colour selections with the `svgnames` option. - + Use starred versions of `xcolor` names (Andrew Dunning). - Prevents changes to documents defined using the `dvipsnames` list (e.g. - `Blue` gives a different result with svgnames enabled). - + Load `polyglossia` after header-includes (#3898). It needs to be - loaded as late as possible. - + Use `unicode-math` (Vaclav Haisman). Use `mathspec` with only - XeLaTeX on request. - + Don't load `fontspec` before `unicode-math` (over there). - The `unicode-math` package loads `fontspec` so explicit loading of - `fontspec` before `unicode-math` is not necessary. - + Use `unicode-math` by default in default.latex template. mathspec will - be used in xelatex if the `mathspec` variable is set; otherwise - unicode-math will be used (Václav Haisman). - + Use `dvipsnames` options when `colorlinks` specified (otherwise - we get an error for `maroon`) (Thomas Hodgson). - + Added beamer `titlegraphic` and `logo` variables (Thomas Hodgson). - + Fix typo in fix for notes in tables (#2378, zeeMonkeez). - + Fix `hyperref` options clash (Andrew Dunning, #3847) Avoids an options - clash when loading a package (e.g. `tufte-latex`) that uses - `hyperref` settings different from those in the template. - + Add `natbiboptions` variable (#3768). - + Fix links inside captions in LaTeX output with links-as-notes - (Václav Haisman, #3651). Declare our redefined `\href` robust. - + Load `parskip` before `hyperref` (Václav Haisman, #3654). - + Allow setting Japanese fonts when using LuaLaTeX (Václav Haisman, - #3873). by using the `luatexja-fontspec` and `luatexja-preset` - packages. Use existing `CJKmainfont` and `CJKoptions` template - variables. Add `luatexjafontspecoptions` for `luatexja-fontspec` - and `luatexjapresetoptions` for `luatexja-preset`. - + Added `aspectratio` variable to beamer template (Václav Haisman, - #3723). - + Modified template.latex to fix XeLaTex being used with tables - (lwolfsonkin, #3661). Reordered `lang` variable handling to - immediately before `bidi`. - - * ConTeXt template: Improved font handling: `simplefonts` is now - obsolete in ConTeXt (Pablo Rodríguez). - - - [documentation improvements] - - * MANUAL.txt: - - + Add URL for Prince HTML > PDF engine (Ian, #3919). - + Document that content above slide-level will be omitted in - slide shows. See #3460, #2265. - + Explain `--webtex` SVG url (Mauro Bieg, #3471) - + Small clarification in YAML metadata section. - + Document that html4 is technically XHTML 1.0 transitional. - + Remove refs to highlighting-kate (#3672). - + Document ibooks specific epub metadata. - + Clarify that mathml is used for ODT math. - + Mention limitations of Literate Haskell Support (#3410, - Joachim Breitner). - + Add documentation of limitations of grid tables (Stephen - McDowell, #3864). - + Clarify that meta-json contains transformed values (Jakob Voß, - #3491) Make clear that template variable `meta-json` does not - contain plain text values or JSON output format but field values - transformed to the selected output format. - - * COPYRIGHT: - - + Clarify that templates are dual-licensed. - + Clarify that pandoc-types is BSD3 licensed. - + List new files not written by jgm (Albert Krewinkel). - + Update dates in copyright notices (Albert Krewinkel). This follows - the suggestions given by the FSF for GPL licensed software. - <https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html> - - * INSTALL.md: - - + Improved instructions for tests with patterns. - + Put RPM-based distros on separate point (Mauro Bieg, #3449) - - * CONTRIBUTING.md: - - + Fixed typos (Wandmalfarbe, #3479). - + Add "ask on pandoc-discuss" (Mauro Bieg). - - * Add lua filter documentation in `doc/lua-filters.md`. Note that the - end of this document is autogenerated from `data/pandoc.lua` - using `make doc/lua-filters.md`, which uses `tools/ldoc.ltp` - (Albert Krewinkel). - - * Add `doc/filters.md`. This is the old scripting tutorial from - the website. - - * Add `doc/using-the-pandoc-api.md` (#3289). This gives an introduction - to using pandoc as a Haskell library. - - - [build infrastructure improvements] - - * Removed `data/templates` submodule. Templates are now a subtree - in `data/templates`. This removes the need to do `git submodule - update`. - - * Renamed `tests` -> `test`. - - * Remove `https` flag. Always build with HTTPS support. - - * Use `file-embed` instead of `hsb2hs` to embed data files when - `embed_data_files` flag is set. `file-embed` gives us better dependency - tracking: if a data file changes, ghc/stack/cabal know to recompile - the Data module. This also removes `hsb2hs` as a build dependency. - - * Add `custom-setup` stanza to pandoc, lowercase field names. - - * Add `static` Cabal flag. - - * Name change OSX -> MacOS. Add a -MacOS suffix to mac package rather - than -OSX. Changed local names from osx to macos. - - * make_macos_package.sh - Use strip to reduce executable size. - - * Revised binary linux package. Now a completely static executable - is created, using Docker and alpine. We create both a deb and a - tarball. The old `deb` directory has been replaced with a `linux` - directory. Running `make` in the `linux` directory should - perform the build, putting the binary packages in `artifacts/`. - - * `linux/control.in`: add `Replaces:`, so existing pandoc-citeproc and - pandoc-data packages will be uninstalled; this package provides - both (#3822). Add latex packages as 'suggested', update - description. - - * Remove cpphs build requirement -- it is no longer needed. - - * Replaced `{deb,macos,windows}/stack.yaml` with `stack.pkg.yaml`. - - * Name change OSX -> macOS (ickc, #3869). - - * Fix casing of Linux, UNIX, and Windows (ickc). - - * `.travis.yml`: create a source dist and do cabal build and test there. - That way we catch errors due to files missing from the data - section of pandoc.cabal. - - * Makefile: - - + Split `make haddock` from `make full`. - + Add BRANCH variable for winpkg. - + Add `lint` target. - + Improve `make full`. Disable optimizations. - Build everything, inc. trypandoc and benchmarks. Use parallel build. - + Allow `make test` to take `TESTARGS`. - - * Added new command tests (`Tests.Command`), using small text files - in `test/command/`. Any files added in this directory will be treated - as shell tests (see smart.md for an example). This makes it very easy - to add regression tests etc. - - * Test fixes so we can find data files. In old tests & command tests, - we now set the environment variable `pandoc_datadir`. In lua tests, - we set the datadir explicitly. - - * Refactored `compareOutput` in docx writer test. - - * Consolidated some common functions in `Tests.Helper`. - - * Small change to unbalanced bracket test to speed up test suite. - - * Speed up Native writer quickcheck tests. - - * Use tasty for tests rather than test-framework. - - * Add simple Emacs mode to help with Pandoc templates editing. - (Václav Haisman, #3889). `tools/pandoc-template-mode.el` - - -pandoc (1.19.2) - - * Use skylighting library instead of highlighting-kate for syntax - highlighting. Skylighting is faster and more accurate (#3363). - Later we'll be able to add features like warning messages, dynamic - loading of xml syntax definitions, and dynamic loading of themes. - - * Added a new highlight style, `breezeDark`. - - * Text.Pandoc.Highlighting: Update list of `listings` languages (#3374). - This allows more languages to be used when using the `--listings` - option. - - * OpenDocument writer: - - + Small refactoring. Removed separate 'parent' parameter in paraStyle. - + Don't profilerate text styles unnecessarily (#3371). - This change makes the writer create only as many temporary - text styles as are absolutely necessary. It also consolidates - adjacent nodes with the same style. - - * Org reader (Albert Krewinkel): - - + Allow short hand for single-line raw blocks (Albert Krewinkel, - #3366). Single-line raw blocks can be given via `#+FORMAT: raw line`, - where `FORMAT` must be one of `latex`, `beamer`, `html`, or `texinfo`. - + Accept org-ref citations followed by commas (Albert Krewinkel). - Bugfix for an issue which, whenever the citation was immediately - followed by a comma, prevented correct parsing of org-ref citations. - + Ensure emphasis markup can be nested. Nested emphasis markup (e.g. - `/*strong and emphasized*/`) was interpreted incorrectly in that the - inner markup was not recognized. - + Remove pipe char irking the haddock coverage tool (Albert Krewinkel). - - * Docx reader: Empty header should be list of lists (Jesse Rosenthal). - In the past, the docx reader wrote an empty header as an empty list. It - should have the same width as a row (and be filled with empty cells). - - * MediaWiki reader: - - + Improved handling of display math (#3362). Sometimes display math is - indented with more than one colon. Previously we handled these cases - badly, generating definition lists and missing the math. - + Fix quotation mark parsing (#3336, tgkokk). Change MediaWiki reader's - behavior when the smart option is parsed to match other readers' - behavior. - - * Markdown reader: - - + Fixed `-f markdown_github-hard_line_breaks+escaped_line_breaks` - (#3341). Previously this did not properly enable escaped line breaks. - + Disallow space between inline code and attributes (#3326, #3323, - Mauro Bieg). - - * DocBook5 writer: make id attribute xml:id, fixes #3329 (#3330, Mauro Bieg). - - * Added some test cases for ODT reader (#3306, #3308, Hubert Plociniczak). - - * LaTeX writer: allow tables with empty cells to count as "plain." - This addresses a problem of too-wide tables when empty cells - are used. Thanks to Joost Kremers for reporting the issue. - - * Org writer: prefix footnote numbers with `fn:` (Albert Krewinkel). - Unprefixed numbers where used by older org-mode versions, but are no - longer supported. - - * HTML writer: don't process pars with empty RawInline, (#1040, #3327, - Mauro Bieg). - - * Markdown writer: Fix display math with `--webtex` (#3298). - - * Fix sample.lua so it properly handles raw blocks/inlines (#3358, - bumper314). - - * Templates: - - + default.latex: Moved geometry after hyperref (Václav Haisman). - Otherwise PDF sizes can be wrong in some circumstances. - + Copied a few changes from default.latex to default.beamer - (Wandmalfarbe). - + default.latex, default.beamer: Changed position of `\VerbatimNotes` - and `fancyvrb`. This fixes hyperlinks on footnotes in documents - that contain verbatim in notes (#3361). (Note: the beamer template - was updated to match the LaTeX template, but at this point verbatim - in notes seems not to work in beamer.) - + default.latex: Allow passing `microtypeoptions` to microtype - (Václav Haisman). - + default.latex: Add hyphen option to url package. - + default.docbook5: Fix namespace declarations (Mauro Bieg). - - * Moved `make_osx_package.sh` to `osx/` directory. - - * Travis continuous integration: - - + Fix false positives with dist build. - + Speed improvements (Kolen Cheung, #3304, #3357). - - * MANUAL.txt: - - + Clarify that blank space is needed around footnotes (#3352). - + Fixed typo (#3351, Alexey Rogechev). - + Note that `--wrap=auto` does not work in HTML output. - + Default `--columns` width is 72, not 80. - + Fixed broken links (#3316, Kolen Cheung). - + Document usage of `@*` in nocite section (#3333, John Muccigrosso). - - * INSTALL.md: - - + Indent code so it's properly formatted (#3335, Bheesham Persaud). - + Added instructions for extracting binary from OSX, Windows packages. - - * CONTRIBUTING.md: Describe labels currently used in issue tracker - (Albert Krewinkel). The labels have changed over time, the list of - labels is updated to reflect the current set of labels used in the - issue tracker. - - * Rearrange and extend badges in README (Albert Krewinkel, #3354) - - * Bumped version bounds for dependencies. - - -pandoc (1.19.1) - - * Set `PANDOC_VERSION` environment variable for filters (#2640). - This allows filters to check the pandoc version that produced - the JSON they are receiving. - - * Docx reader: Ensure one-row tables don't have header (#3285, - Jesse Rosenthal). Tables in MS Word are set by default to have - special first-row formatting, which pandoc uses to determine whether - or not they have a header. This means that one-row tables will, by - default, have only a header -- which we imagine is not what people - want. This change ensures that a one-row table is not understood to - be a header only. Note that this means that it is impossible to - produce a header-only table from docx, even though it is legal - pandoc. But we believe that in nearly all cases, it will be an - accidental (and unwelcome) result - - * HTML reader: - - + Fixed some bad regressions in HTML table parser (#3280). - This regression leads to the introduction of empty rows - in some circumstances. - + Understand `style=width:` as well as `width` in `col` (#3286). - - * RST reader: - - + Print warnings when keys, substitition, notes not found. - Previously the parsers failed and we got raw text. Now we get a - link with an empty URL, or empty inlines in the case of a note or - substitution. - - + Fix hyperlink aliases (#3283). - - * Man writer: Ensure that periods are escaped at beginning of line - (#3270). - - * LaTeX writer: Fix unnumbered headers when used with `--top-level` - (#3272, Albert Krewinkel). Fix interaction of top-level divisions - `part` or `chapter` with unnumbered headers when emitting LaTeX. Headers - are ensured to be written using stared commands (like `\subsection*{}`). - - * LaTeX template: use comma not semicolon to separate keywords for - `pdfkeywords`. Thanks to Wandmalfarbe. - - * Markdown writer: Fixed incorrect word wrapping (#3277). Previously pandoc - would sometimes wrap lines too early due to this bug. - - * Text.Pandoc.Pretty: Added `afterBreak` [API change]. This makes it - possible to insert escape codes for content that needs escaping at the - beginning of a line. - - * Removed old MathMLInHTML.js from 2004, which should no longer - be needed for MathML with modern browsers. - - * Fixed tests with dynamic linking (#2709). - - * Makefile: Use stack instead of cabal for targets. This is just - a convenience for developers. - - * Fixed bash completion of filenames with space (#2749). - - * MANUAL: improved documentation on how to create a custom `reference.docx`. - - * Fix minor spelling typos in the manual (#3273, Anthony Geoghegan) - -pandoc (1.19) - - * Changed resolution of filter paths. - - + We now first treat the argument of `--filter` as a full (absolute - or relative) path, looking for a program there. If it's found, we - run it. - + If not, and if it is a simple program name or a relative path, we - try resolving it relative to `$DATADIR/filters`. - + If this fails, then we treat it as a program name and look in the - user's PATH. - + Removed a hardcoded '/' that may have caused problems with - Windows paths. - - Previously if you did `--filter foo` and you had `foo` in your path and - also an executable `foo` in your working directory, the one in the path - would be used. Now the one in the working directory is used. - - In addition, when you do `--filter foo/bar.hs`, pandoc will now find a - filter `$DATADIR/filters/foo/bar.hs` -- assuming there isn't a - `foo/bar.hs` relative to the working directory. - - * Allow `file://` URIs as arguments (#3196). Also improved default reader - format detection. Previously with a URI ending in .md or .markdown, - pandoc would assume HTML input. Now it treats these as markdown. - - * Allow to overwrite top-level division type heuristics (#3258, - Albert Krewinkel). Pandoc uses heuristics to determine the most - reasonable top-level division type when emitting LaTeX or - Docbook markup. It is now possible to overwrite this implicitly set - top-level division via the `top-level-division` command line parameter. - - * Text.Pandoc.Options \[API changes\]: - - + Removed `writerStandalone` field in `WriterOptions`, made - `writerTemplate` a `Maybe` value. Previously setting - `writerStandalone = True` did nothing unless a template was provided - in writerTemplate. Now a fragment will be generated if - `writerTemplate` is `Nothing`; otherwise, the specified template - will be used and standalone output generated. - + `Division` has been renamed `TopLevelDivision` (#3197). The - `Section`, `Chapter`, and `Part` constructors were renamed to - `TopLevelSection`, `TopLevelChapter`, and - `TopLevelPart`, respectively. An additional `TopLevelDefault` - constructor was added, which is now also the new default value of - the `writerTopLevelDivision` field in `WriterOptions`. - - * Improved error if they give wrong arg to `--top-level-division`. - - * Use new module from texmath to lookup MS font codepoints in Docx reader. - Removed unexported module Text.Pandoc.Readers.Docx.Fonts. Its code now - lives in texmath (0.9). - - * DocBook reader: Fixed xref lookup (#3243). It previously only worked - when the qnames lacked the docbook namespace URI. - - * HTML reader: - - + Improved table parsing (#3027). We now check explicitly for non-1 - rowspan or colspan attributes, and fail when we encounter them. - Previously we checked that each row had the same number of cells, - but that could be true even with rowspans/colspans. And there are - cases where it isn't true in tables that we can handle fine -- e.g. - when a tr element is empty. So now we just pad rows with empty cells - when needed. - + Treat `<math>` as MathML by default unless something else is - explicitly specified in xmlns. Provided it parses as MathML, - of course. Also fixed default which should be to inline math if no - display attribute is used. - + Only treat "a" element as link if it has href (#3226). Otherwise - treat as span. - - * Docx reader (Jesse Rosenthal): - - + Add a placeholder value for CHART. We wrap `[CHART]` in a - `<span class="chart">`. Note that it maps to inlines because, in - docx, anything in a drawing tag can be part of a larger paragraph. - + Be more specific in parsing images We not only want `w:drawing`, - because that could also include charts. Now we specify - `w:drawing/pic:pic`. This shouldn't change behavior at all, but it's - a first step toward allowing other sorts of drawing data as well. - + Abstract out function to avoid code repetition. - + Update tests for img title and alt (#3204). - + Handle Alt text and titles in images. We use the "description" field - as alt text and the "title" field as title. These can be accessed - through the "Format Picture" dialog in Word. - + Docx reader utils: handle empty namespace in `elemName`. Previously, - if given an empty namespace `(elemName ns "" "foo")` `elemName` - would output a QName with a `Just ""` namespace. This is never what - we want. Now we output a `Nothing`. If someone *does* want a - `Just ""` in the namespace, they can enter the QName - value explicitly. - - * ODT reader/writer: - - + Inline code when text has a special style (Hubert Plociniczak). When - a piece of text has a text `Source_Text` then we assume that this is - a piece of the document that represents a code that needs to - be inlined. Adapted the writer to also reflect that change. - Previously it was just writing a 'preformatted' text using a - non-distinguishable font style. Code blocks are still not recognized - by the ODT reader. That's a separate issue. - + Infer table's caption from the paragraph (#3224, - Hubert Plociniczak). ODT's reader always put empty captions for the - parsed tables. This commit - - 1. checks paragraphs that follow the table definition - 2. treats specially a paragraph with a style named 'Table' - 3. does some postprocessing of the paragraphs that combines tables - followed immediately by captions - - The ODT writer used the `TableCaption` style for the caption - paragraph. This commit follows the OpenOffice approach which allows - for appending captions to table but uses a built-in style named - `Table` instead of `TableCaption`. Users of a custom `reference.odt` - should change the style's name from `TableCaption` to `Table`. - - * ODT reader: Infer tables' header props from rows (#3199, - Hubert Plociniczak). ODT reader simply provided an empty header list - which meant that the contents of the whole table, even if not empty, was - simply ignored. While we still do not infer headers we at least have to - provide default properties of columns. - - * Markdown reader: - - + Allow reference link labels starting with `@...` if `citations` - extension disabled (#3209). Example: in - - \[link text\]\[@a\] - - `link text` isn't hyperlinked because `[@a]` is parsed as - a citation. Previously this happened whether or not the `citations` - extension was enabled. Now it happens only if the `citations` - extension is enabled. - + Allow alignments to be specified in Markdown grid tables. For - example, - - +-------+---------------+--------------------+ - | Right | Left | Centered | - +=========:+:=================+:=============:+ - | Bananas | $1.34 | built-in wrapper | - +-------+---------------+--------------------+ - - + Allow Small Caps elements to be created using bracketed spans (as - they already can be using HTML-syntax spans) (#3191, Kolen Cheung). - - * LaTeX reader: - - + Don't treat `\vspace` and `\hspace` as block commands (#3256). - Fixed an error which came up, for example, with `\vspace` inside - a caption. (Captions expect inlines.) - + Improved table handling. We can now parse all of the tables emitted - by pandoc in our tests. The only thing we don't get yet are - alignments and column widths in more complex tables. See #2669. - + Limited support for minipage. - + Allow for `[]`s inside LaTeX optional args. Fixes cases like: - + Handle BVerbatim from fancyvrb (#3203). - + Handle hungarumlaut (#3201). - + Allow beamer-style `<...>` options in raw LaTeX (also in Markdown) - (#3184). This allows use of things like `\only<2,3>{my content}` in - Markdown that is going to be converted to beamer. - - * Use pre-wrap for code in dzslides template (Nicolas Porcel). Otherwise - overly long code will appear on every slide. - - * Org reader (Albert Krewinkel): - - + Respect column width settings (#3246). Table column properties can - optionally specify a column's width with which it is displayed in - the buffer. Some exporters, notably the ODT exporter in org-mode - v9.0, use these values to calculate relative column widths. The org - reader now implements the same behavior. Note that the org-mode - LaTeX and HTML exporters in Emacs don't support this feature yet, - which should be kept in mind by users who use the column - widths parameters. - + Allow HTML attribs on non-figure images (#3222). Images which are - the only element in a paragraph can still be given HTML attributes, - even if the image does not have a caption and is hence not a figure. - The following will add set the `width` attribute of the image to - `50%`: - - +ATTR\_HTML: :width 50% - ======================= - - \[\[file:image.jpg\]\] - - + Support `ATTR_HTML` for special blocks (#3182). Special - blocks (i.e. blocks with unrecognized names) can be prefixed with an - `ATTR_HTML` block attribute. The attributes defined in that - meta-directive are added to the `Div` which is used to represent the - special block. - + Support the `todo` export option. The `todo` export option allows to - toggle the inclusion of TODO keywords in the output. Setting this to - `nil` causes TODO keywords to be dropped from headlines. The default - is to include the keywords. - + Add support for todo-markers. Headlines can have optional - todo-markers which can be controlled via the `#+TODO`, `#+SEQ_TODO`, - or `#+TYP_TODO` meta directive. Multiple such directives can be - given, each adding a new set of recognized todo-markers. If no - custom todo-markers are defined, the default `TODO` and `DONE` - markers are used. Todo-markers are conceptually separate from - headline text and are hence excluded when autogenerating - headline IDs. The markers are rendered as spans and labelled with - two classes: One class is the markers name, the other signals the - todo-state of the marker (either `todo` or `done`). - - * LaTeX writer: - - + Use `\autocites*` when "suppress-author" citation used. - + Ensure that simple tables have simple cells (#2666). If cells - contain more than a single Plain or Para, then we need to set - nonzero widths and put contents into minipages. - + Remove invalid inlines in sections (#3218, Hubert Plociniczak). - - * Markdown writer: - - + Fix calculation of column widths for aligned multiline tables - (#1911, Björn Peemöller). This also fixes excessive CPU and memory - usage for tables when `--columns` is set in such a way that cells - must be very tiny. Now cells are guaranteed to be big enough so that - single words don't need to line break, even if this pushes the line - length above the column width. - + Use bracketed form for native spans when `bracketed_spans` - enabled (#3229). - + Fixed inconsistent spacing issue (#3232). Previously a tight bullet - sublist got rendered with a blank line after, while a tight ordered - sublist did not. Now we don't get the blank line in either case. - + Fix escaping of spaces in super/subscript (#3225). Previously two - backslashes were inserted, which gave a literal backslash. - + Adjust widths in Markdown grid tables so that they match - on round-trip. - - * Docx writer: - - + Give full detail when there are errors converting tex math. - + Handle title text in images (Jesse Rosenthal). We already handled - alt text. This just puts the image "title" into the docx - "title" attr. - + Fixed XML markup for empty cells (#3238). Previously the Compact - style wasn't being applied properly to empty cells. - - * HTML writer: - - + Updated `renderHtml` import from blaze-html. - - * Text.Pandoc.Pretty: - - + Fixed some bugs that caused blank lines in tables (#3251). The bugs - caused spurious blank lines in grid tables when we had things like - `blankline $$ blankline`. - + Add exported function `minOffet` \[API change\] (Björn Peemöller). - + Added error message for illegal call to `block` (Björn Peemöller). - - * Text.Pandoc.Shared: - - + Put `warn` in MonadIO. - + `fetchItem`: Better handling of protocol-relative URL (#2635). If - URL starts with `//` and there is no "base URL" (as there would be - if a URL were used on the command line), then default to http:. - - * Export Text.Pandoc.getDefaultExtensions \[API change\] (#3178). - - * In --version, trap error in `getAppUserDataDirectory` (#3241). This - fixes a crash with `pandoc --version` on unusual systems with no real - user (e.g. SQL Server 2016). - - * Added weigh-pandoc for memory usage diagnostics (#3169). - - * Use correct mime types for woff and woff2 (#3228). - - * Remove make\_travis\_yml.hs (#3235, Kolen Cheung). - - * changelog: Moved an item that was misplaced in the 1.17.2 section to the - 1.18 section where it belongs. - - * CONTRIBUTING.md: minor change in wording and punctuation (#3252, - Kolen Cheung). - - * Further revisions to manual for `--version` changes (#3244). - - -pandoc (1.18) - - * Added `--list-input-formats`, `--list-output-formats`, - `--list-extensions`, `--list-highlight-languages`, and - `--list-highlight-styles` (#3173). Removed list of highlighting - languages from `--version` output. Removed list of input and output - formats from default `--help` output. - - * Added `--reference-location=block|section|document` option - (Jesse Rosenthal). This determines whether Markdown link references - and footnotes are placed at the end of the document, the end of the - section, or the end of the top-level block. - - * Added `--top-level-division=section|chapter|part` (Albert Krewinkel). - This determines what a level-1 header corresponds to in LaTeX, - ConTeXt, DocBook, and TEI output. The default is `section`. - The `--chapters` option has been deprecated in favor of - `--top-level-division=chapter`. - - * Added `LineBlock` constructor for `Block` (Albert Krewinkel). This - is now used in parsing RST and Markdown line blocks, DocBook - `linegroup`/`line` combinations, and Org-mode `VERSE` blocks. - Previously `Para` blocks with hard linebreaks were used. `LineBlock`s - are handled specially in the following output formats: AsciiDoc - (as `[verse]` blocks), ConTeXt (`\startlines`/`\endlines`), - HTML (`div` with a style), Markdown (line blocks if `line_blocks` - is enabled), Org-mode (`VERSE` blocks), RST (line blocks). In - other output formats, a paragraph with hard linebreaks is emitted. - - * Allow binary formats to be written to stdout (but not to tty) (#2677). - Only works on posix, since we use the unix library to check whether - output is to tty. On Windows, pandoc works as before and always requires - an output file parameter for binary formats. - - * Changed JSON output format (Jesse Rosenthal). Previously we used - generically generated JSON, but this was subject to change depending - on the version of aeson pandoc was compiled with. To ensure stability, - we switched to using manually written ToJSON and FromJSON - instances, and encoding the API version. **Note:** pandoc filter - libraries will need to be revised to handle the format change. - Here is a summary of the essential changes: - - + The toplevel JSON format is now `{"pandoc-api-version" : - [MAJ, MIN, REV], "meta" : META, "blocks": BLOCKS}` - instead of `[{"unMeta": META}, [BLOCKS]]`. - Decoding fails if the major and minor version numbers don't - match. - + Leaf nodes no longer have an empty array for their "c" value. - Thus, for example, a `Space` is encoded as `{"t":"Space"}` - rather than `{"t":"Space","c":[]}` as before. - - * Removed `tests/Tests/Arbitrary.hs` and added a `Text.Pandoc.Arbitrary` - module to pandoc-types (Jesse Rosenthal). This makes it easier - to use QuickCheck with pandoc types outside of pandoc itself. - - * Add `bracketed_spans` Markdown extension, enabled by default - in pandoc `markdown`. This allows you to create a native span - using this syntax: `[Here is my span]{#id .class key="val"}`. - - * Added `angle_brackets_escapable` Markdown extension (#2846). - This is needed because github flavored Markdown has a slightly - different set of escapable symbols than original Markdown; - it includes angle brackets. - - * Export `Text.Pandoc.Error` in `Text.Pandoc` [API change]. - - * Print highlighting-kate version in `--version`. - - * `Text.Pandoc.Options`: - - + `Extension` has new constructors `Ext_brackted_spans` and - `Ext_angle_brackets_escapable` [API change]. - + Added `ReferenceLocation` type [API change] (Jesse Rosenthal). - + Added `writerReferenceLocation` field to `WriterOptions` (Jesse - Rosenthal). - - * `--filter`: we now check `$DATADIR/filters` for filters before - looking in the path (#3127, Jesse Rosenthal, thanks to Jakob - Voß for the idea). Filters placed in this directory need not - be executable; if the extension is `.hs`, `.php`, `.pl`, `.js`, - or `.rb`, pandoc will run the right interpreter. - - * For `--webtex`, replace deprecated Google Chart API by CodeCogs as - default (Kolen Cheung). - - * Removed `raw_tex` extension from `markdown_mmd` defaults (Kolen Cheung). - - * Execute .js filters with node (Jakob Voß). - - * Textile reader: - - + Support `bc..` extended code blocks (#3037). Also, remove trailing - newline in code blocks (consistently with Markdown reader). - + Improve table parsing. We now handle cell and row attributes, mostly - by skipping them. However, alignments are now handled properly. - Since in pandoc alignment is per-column, not per-cell, we - try to devine column alignments from cell alignments. - Table captions are also now parsed, and textile indicators - for thead and tfoot no longer cause parse failure. (However, - a row designated as tfoot will just be a regular row in pandoc.) - + Improve definition list parsing. We now allow multiple terms - (which we concatenate with linebreaks). An exponential parsing - bug (#3020) is also fixed. - + Disallow empty URL in explicit link (#3036). - - * RST reader: - - + Use Div instead of BlockQuote for admonitions (#3031). - The Div has class `admonition` and (if relevant) one of the - following: `attention`, `caution`, `danger`, `error`, `hint`, - `important`, `note`, `tip`, `warning`. **Note:** This will change - the rendering of some RST documents! The word ("Warning", "Attention", - etc.) is no longer added; that must be done with CSS or a filter. - + A Div is now used for `sidebar` as well. - + Skip whitespace before note (Jesse Rosenthal, #3163). RST requires a - space before a footnote marker. We discard those spaces so that footnotes - will be adjacent to the text that comes before it. This is in line with - what rst2latex does. - + Allow empty lines when parsing line blocks (Albert Krewinkel). - - * Markdown reader: - - + Allow empty lines when parsing line blocks (Albert Krewinkel). - + Allow attributes on autolinks (#3183, Daniele D'Orazio). - - * LaTeX reader: - - + More robust parsing of unknown environments (#3026). - We no longer fail on things like `^` inside options for tikz. - + Be more forgiving of non-standard characters, e.g. `^` outside of math. - Some custom environments give these a meaning, so we should try not to - fall over when we encounter them. - + Drop duplicate `*` in bibtexKeyChars (Albert Krewinkel) - - * MediaWiki reader: - - + Fix for unquoted attribute values in mediawiki tables (#3053). - Previously an unquoted attribute value in a table row - could cause parsing problems. - + Improved treatment of verbatim constructions (#3055). - Previously these yielded strings of alternating Code and Space - elements; we now incorporate the spaces into the Code. Emphasis - etc. is still possible inside these. - + Properly interpret XML tags in pre environments (#3042). They are meant - to be interpreted as literal text. - - * EPUB reader: don't add root path to data: URIs (#3150). - Thanks to @lep for the bug report and patch. - - * Org reader (Albert Krewinkel): - - + Preserve indentation of verse lines (#3064). Leading spaces in verse - lines are converted to non-breaking spaces, so indentation is preserved. - + Ensure image sources are proper links. Image sources as those in plain - images, image links, or figures, must be proper URIs or relative file - paths to be recognized as images. This restriction is now enforced - for all image sources. This also fixes the reader's usage of uncleaned - image sources, leading to `file:` prefixes not being deleted from - figure images. Thanks to @bsag for noticing this bug. - + Trim verse lines properly (Albert Krewinkel). - + Extract meta parsing code to module. Parsing of meta-data is well - separable from other block parsing tasks. Moving into new module to - get small files and clearly arranged code. - + Read markup only for special meta keys. Most meta-keys should be read - as normal string values, only a few are interpreted as marked-up text. - + Allow multiple, comma-separated authors. Multiple authors can be - specified in the `#+AUTHOR` meta line if they are given as a - comma-separated list. - + Give precedence to later meta lines. The last meta-line of any given - type is the significant line. Previously the value of the first line - was kept, even if more lines of the same type were encountered. - + Read LaTeX_header as header-includes. LaTeX-specific header commands - can be defined in `#+LaTeX_header` lines. They are parsed as - format-specific inlines to ensure that they will only show up in LaTeX - output. - + Set documentclass meta from LaTeX_class. - + Set classoption meta from LaTeX_class_options. - + Read HTML_head as header-includes. HTML-specific head content can be - defined in `#+HTML_head` lines. They are parsed as format-specific - inlines to ensure that they will only show up in HTML output. - + Respect `author` export option. The `author` option controls whether - the author should be included in the final markup. Setting - `#+OPTIONS: author:nil` will drop the author from the final meta-data - output. - + Respect `email` export option. The `email` option controls whether the - email meta-field should be included in the final markup. Setting - `#+OPTIONS: email:nil` will drop the email field from the final - meta-data output. - + Respect `creator` export option. The `creator` option controls whether - the creator meta-field should be included in the final markup. Setting - `#+OPTIONS: creator:nil` will drop the creator field from the final - meta-data output. Org-mode recognizes the special value `comment` for - this field, causing the creator to be included in a comment. This is - difficult to translate to Pandoc internals and is hence interpreted the - same as other truish values (i.e. the meta field is kept if it's - present). - + Respect unnumbered header property (#3095). Sections the `unnumbered` - property should, as the name implies, be excluded from the automatic - numbering of section provided by some output formats. The Pandoc - convention for this is to add an "unnumbered" class to the header. The - reader treats properties as key-value pairs per default, so a special - case is added to translate the above property to a class instead. - + Allow figure with empty caption (Albert Krewinkel, #3161). - A `#+CAPTION` attribute before an image is enough to turn an image into - a figure. This wasn't the case because the `parseFromString` function, - which processes the caption value, would fail on empty values. Adding - a newline character to the caption value fixes this. - - * Docx reader: - - + Use XML convenience functions (Jesse Rosenthal). - The functions `isElem` and `elemName` (defined in Docx/Util.hs) make - the code a lot cleaner than the original XML.Light functions, but they - had been used inconsistently. This puts them in wherever applicable. - + Handle anchor spans with content in headers. Previously, we would only - be able to figure out internal links to a header in a docx if the - anchor span was empty. We change that to read the inlines out of the - first anchor span in a header. - + Let headers use existing id. Previously we always generated an id for - headers (since they wouldn't bring one from Docx). Now we let it use an - existing one if possible. This should allow us to recurs through anchor - spans. - + Use all anchor spans for header ids. Previously we only used the first - anchor span to affect header ids. This allows us to use all the anchor - spans in a header, whether they're nested or not (#3088). - + Test for nested anchor spans in header. This ensures that anchor spans - in header with content (or with other anchor spans inside) will resolve - to links to a header id properly. - - * ODT reader (Hubert Plociniczak) - - + Include list's starting value. Previously the starting value of - the lists' items has been hardcoded to 1. In reality ODT's list - style definition can provide a new starting value in one of its - attributes. - + Infer caption from the text following the image. - Frame can contain other frames with the text boxes. - + Add `fig:` to title for Image with a caption (as expected - by pandoc's writers). - + Basic support for images in ODT documents. - + Don't duplicate text for anchors (#3143). When creating an anchor - element we were adding its representation as well as the original - content, leading to text duplication. - - * DocBook writer: - - + Include an anchor element when a div or span has an id (#3102). - Note that DocBook does not have a class attribute, but at least this - provides an anchor for internal links. - - * LaTeX writer: - - + Don't use * for unnumbered paragraph, subparagraph. The starred - variants don't exist. This helps with part of #3058...it gets rid of - the spurious `*`s. But we still have numbers on the 4th and 5th level - headers. - + Properly escape backticks in verbatim (#3121, Jesse Rosenthal). - Otherwise they can cause unintended ligatures like `` ?` ``. - + Handle NARRAOW NO-BREAK SPACE into LaTeX (Vaclav Zeman) as `\,`. - + Don't include `[htbp]` placement for figures (#3103, Václav Haisman). - This allows figure placement defaults to be changed by the user - in the template. - - * HTML writer (slide show formats): In slide shows, don't change slide title - to level 1 header (#2221). - - * TEI writer: remove heuristic to detect book template (Albert Krewinkel). - TEI doesn't have `<book>` elements but only generic `<divN>` division - elements. Checking the template for a trailing `</book>` is nonsensical. - - * MediaWiki writer: transform filename with underscores in images (#3052). - `foo bar.jpg` becomes `foo_bar.jpg`. This was already done - for internal links, but it also needs to happen for images. - - * ICML writer: replace partial function (!!) in table handling (#3175, - Mauro Bieg). - - * Man writer: allow section numbers that are not a single digit (#3089). - - * AsciiDoc writer: avoid unnecessary use of "unconstrained" emphasis - (#3068). In AsciiDoc, you must use a special form of emphasis - (double `__`) for intraword emphasis. Pandoc was previously using - this more than necessary. - - * EPUB writer: use stringify instead of plain writer for metadata - (#3066). This means that underscores won't be used for emphasis, - or CAPS for bold. The metadata fields will just have unadorned - text. - - * Docx Writer: - - + Implement user-defined styles (Jesse Rosenthal). Divs and Spans - with a `custom-style` key in the attributes will apply the corresponding - key to the contained blocks or inlines. - + Add ReaderT env to the docx writer (Jesse Rosenthal). - + Clean up and streamline RTL behavior (Jesse Rosenthal, #3140). - You can set `dir: rtl` in YAML metadata, or use `-M dir=rtl` - on the command line. For finer-grained control, you can set - the `dir` attribute in Div or Span elements. - - * Org writer (Albert Krewinkel): - - + Remove blank line after figure caption. Org-mode only treats an image - as a figure if it is directly preceded by a caption. - + Ensure blank line after figure. An Org-mode figure should be surrounded - by blank lines. The figure would be recognized regardless, but images - in the following line would unintentionally be treated as figures as - well. - + Ensure link targets are paths or URLs. Org-mode treats links as - document internal searches unless the link target looks like a URL or - file path, either relative or absolute. This change ensures that this - is always the case. - + Translate language identifiers. Pandoc and Org-mode use different - programming language identifiers. An additional translation between - those identifiers is added to avoid unexpected behavior. This fixes a - problem where language specific source code would sometimes be output - as example code. - + Drop space before footnote markers (Albert Krewinkel, #3162). - The writer no longer adds an extra space before footnote markers. - - * Markdown writer: - - + Don't emit HTML for tables unless `raw_html` extension is set (#3154). - Emit `[TABLE]` if no suitable table formats are enabled and raw HTML - is disabled. - + Check for the `raw_html` extension before emitting a raw HTML block. - + Abstract out note/ref function (Jesse Rosenthal). - + Add ReaderT monad for environment variables (Jesse Rosenthal). - - * HTML, EPUB, slidy, revealjs templates: Use `<p>` instead of `<h1>` for - subtitle, author, date (#3119). Note that, as a result of this change, - authors may need to update CSS. - - * revealjs template: Added `notes-server` option - (jgm/pandoc-templates#212, Yoan Blanc). - - * Beamer template: - - + Restore whitespace between paragraphs. This was - a regression in the last release (jgm/pandoc-templates#207). - + Added `themeoptions` variable (Carsten Gips). - + Added `beamerarticle` variable. This causes the `beamerarticle` - package to be loaded in beamer, to produce an article from beamer - slides. (Carsten Gips) - + Added support for `fontfamilies` structured variable - (Artem Klevtsov). - + Added hypersetup options (Jake Zimmerman). - - * LaTeX template: - - + Added dummy definition for `\institute`. - This isn't a standard command, and we want to avoid a crash when - `institute` is used with the default template. - + Define default figure placement (Václav Haisman), since pandoc - no longer includes `[htbp]` for figures. Users with custom templates - will want to add this. See #3103. - + Use footnote package to fix notes in tables (jgm/pandoc-templates#208, - Václav Haisman). - - * Moved template compiling/rendering code to a separate library. - `doctemplates`. This allows the pandoc templating system to be - used independently. - - * Text.Pandoc.Error: Fix out of index error in `handleError` - (Matthew Pickering). The fix is to not try to show the exact line when - it would cause an out-of-bounds error as a result of included files. - - * Text.Pandoc.Shared: Add `linesToBlock` function (Albert Krewinkel). - - * Text.Pandoc.Parsing.emailAddress: tighten up parsing of email - addresses. Technically `**@user` is a valid email address, but if we - allow things like this, we get bad results in markdown flavors - that autolink raw email addresses (see #2940). So we exclude a few - valid email addresses in order to avoid these more common bad cases. - - * Text.Pandoc.PDF: Don't crash with nonexistent image (#3100). Instead, - emit the alt text, emphasized. This accords with what the ODT writer - currently does. The user will still get a warning about a nonexistent - image. - - * Fix example in API documentation (#3176, Thomas Weißschuh). - - * Tell where to get tarball in INSTALL (#3062). - - * Rename README to MANUAL.txt and add GitHub-friendly README.md - (Albert Krewinkel, Kolen Cheung). - - * Replace COPYING with Markdown version COPYING.md from GNU (Kolen Cheung). - - * MANUAL.txt: - - + Put note on structured vars in separate paragraph (#2148, Albert - Krewinkel). Make it clearer that structured author variables require a - custom template - + Note that `--katex` works best with `html5` (#3077). - + Fix the LaTeX and EPUB links in manual (Morton Fox). - + Document `biblio-title` variable. - - * Improve spacing of footnotes in `--help` output (Waldir Pimenta). - - * Update KaTeX to v0.6.0 (Kolen Cheung). - - * Allow latest dependencies. - - * Use texmath 0.8.6.6 (#3040). - - * Allow http-client 0.4.30, which is the version in stackage lts. - Previously we required 0.5. - Remove CPP conditionals for earlier versions. - - * Remove support for GHC < 7.8 (Jesse Rosenthal). - - + Remove Compat.Monoid. - + Remove an inline monad compatibility macro. - + Remove Text.Pandoc.Compat.Except. - + Remove directory compat. - + Change constraint on mtl. - + Remove unnecessary CPP condition in UTF8. - + Bump base lower bound to 4.7. - + Remove 7.6 build from .travis.yaml. - + Bump supported ghc version in CONTRIBUTING.md. - + Add note about GHC version support to INSTALL. - + Remove GHC 7.6 from list of tested versions (Albert Krewinkel). - + Remove TagSoup compat. - + Add EOL note to time compat module. Because time 1.4 is a boot library - for GHC 7.8, we will support the compatibility module as long as we - support 7.8. But we should be clear about when we will no longer need - it. - + Remove blaze-html CPP conditional. - + Remove unnecessary CPP in custom Prelude. - -pandoc (1.17.2) - - * Added Zim Wiki writer, template and tests. `zimwiki` is now - a valid output format. (Alex Ivkin) - - * Changed email-obfuscation default to no obfuscation (#2988). - + `writerEmailObfuscation` in `defaultWriterOptions` is now - `NoObfuscation`. - + the default for the command-line `--email-obfuscation` option is - now `none`. - - * Docbook writer: Declare xlink namespace in Docbook5 output (Ivo Clarysse). - - * Org writer: - - + Support arbitrary raw inlines (Albert Krewinkel). - Org mode allows arbitrary raw inlines ("export snippets" in Emacs - parlance) to be included as `@@format:raw foreign format text@@`. - + Improve Div handling (Albert Krewinkel). Div blocks handling is - changed to make the output look more like idiomatic org mode: - - Div-wrapped content is output as-is if the div's attribute is the - null attribute. - - Div containers with an id but neither classes nor key-value pairs - are unwrapped and the id is added as an anchor. - - Divs with classes associated with greater block elements are - wrapped in a `#+BEGIN`...`#+END` block. - - The old behavior for Divs with more complex attributes is kept. - - * HTML writer: - - + Better support for raw LaTeX environments (#2758). - Previously we just passed all raw TeX through when MathJax was used for - HTML math. This passed through too much. With this patch, only raw - LaTeX environments that MathJax can handle get passed through. - This patch also causes raw LaTeX environments to be treated - as math, when possible, with MathML and WebTeX output. - - * Markdown writer: use raw HTML for simple, pipe tables with linebreaks - (#2993). Markdown line breaks involve a newline, and simple and pipe - tables can't contain one. - - * Make --webtex work with the Markdown writer (#1177). - This is a convenient option for people using - websites whose Markdown flavors don't provide for math. - - * Docx writer: - - + Set paragraph to FirstPara after display math (Jesse Rosenthal). - We treat display math like block quotes, and apply FirstParagraph style - to paragraphs that follow them. These can be styled as the user - wishes. (But, when the user is using indentation, this allows for - paragraphs to continue after display math without indentation.) - + Use actual creation time as doc prop (Jesse Rosenthal). - Previously, we had used the user-supplied date, if available, for Word's - document creation metadata. This could lead to weird results, as in - cases where the user post-dates a document (so the modification might be - prior to the creation). Here we use the actual computer time to set the - document creation. - - * LaTeX writer: - - + Don't URI-escape image source (#2825). Usually this is a local file, - and replacing spaces with `%20` ruins things. - + Allow 'standout' as a beamer frame option (#3007). - `## Slide title {.standout}`. - - * RST reader: Fixed links with no explicit link text. The link - `` `<foo>`_ `` should have `foo` as both its link text and its URL. - See RST spec at <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#embedded-uris-and-aliases> - Closes Debian #828167 -- reported by Christian Heller. - - * Textile reader: - - + Fixed attributes (#2984). Attributes can't be followed by - a space. So, `_(class)emph_` but `_(noclass) emph_`. - + Fixed exponential parsing bug (#3020). - + Fix overly aggressive interpretation as images (#2998). - Spaces are not allowed in the image URL in textile. - - * LaTeX reader: - - + Fix `\cite` so it is a NormalCitation not AuthorInText. - + Strip off double quotes around image source if present (#2825). - Avoids interpreting these as part of the literal filename. - - * Org reader: - - + Add semicolon to list of special chars (Albert Krewinkel) - Semicolons are used as special characters in citations syntax. This - ensures the correct parsing of Pandoc-style citations: `[prefix; @key; - suffix]`. Previously, parsing would have failed unless there was a space - or other special character as the last <prefix> character. - + Add support for "Berkeley-style" cites (Albert Krewinkel, #1978). - A specification for an official Org-mode citation syntax was drafted by - Richard Lawrence and enhanced with the help of others on the orgmode - mailing list. Basic support for this citation style is added to the - reader. - + Support arbitrary raw inlines (Albert Krewinkel). - Org mode allows arbitrary raw inlines ("export snippets" in Emacs - parlance) to be included as `@@format:raw foreign format text@@`. - + Remove partial functions (Albert Krewinkel, #2991). - Partial functions like `head` lead to avoidable errors and should be - avoided. They are replaced with total functions. - + Support figure labels (Albert Krewinkel, #2496, #2999). - Figure labels given as `#+LABEL: thelabel` are used as the ID of the - respective image. This allows e.g. the LaTeX to add proper `\label` - markup. - + Improve tag and properties type safety (Albert Krewinkel). - Specific newtype definitions are used to replace stringly typing of tags - and properties. Type safety is increased while readability is improved. - + Parse as headlines, convert to blocks (Albert Krewinkel). - Emacs org-mode is based on outline-mode, which treats documents as trees - with headlines are nodes. The reader is refactored to parse into a - similar tree structure. This simplifies transformations acting on - document (sub-)trees. - * Refactor comment tree handling (Albert Krewinkel). - Comment trees were handled after parsing, as pattern matching on lists - is easier than matching on sequences. The new method of reading - documents as trees allows for more elegant subtree removal. - * Support archived trees export options (Albert Krewinkel). - Handling of archived trees can be modified using the `arch` option. - Archived trees are either dropped, exported completely, or collapsed to - include just the header when the `arch` option is nil, non-nil, or - `headline`, respectively. - * Put export setting parser into module (Albert Krewinkel). - Export option parsing is distinct enough from general block parsing to - justify putting it into a separate module. - * Support headline levels export setting (Albert Krewinkel). - The depths of headlines can be modified using the `H` option. Deeper - headlines will be converted to lists. - * Replace ugly code with view pattern (Albert Krewinkel). - Some less-than-smart code required a pragma switching of overlapping - pattern warnings in order to compile seamlessly. Using view patterns - makes the code easier to read and also doesn't require overlapping - pattern checks to be disabled. - * Fix parsing of verbatim inlines (Albert Krewinkel, #3016). - Org rules for allowed characters before or after markup chars were not - checked for verbatim text. This resultet in wrong parsing outcomes of - if the verbatim text contained e.g. space enclosed markup characters as - part of the text (`=is_substr = True=`). Forcing the parser to update - the positions of allowed/forbidden markup border characters fixes this. - - * LaTeX template: fix for obscure hyperref/xelatex issue. - Here's a minimal case: - - \documentclass[]{article} - \usepackage{hyperref} - \begin{document} - \section{\%á} - \end{document} - - Without this change, this fails on the second invocation of xelatex. - This affects inputs this like `# %á` with pdf output via xelatex. - - * trypandoc: call results 'html' instead of 'result'. - This is for better compatibility with babelmark2. - - * Document MultiMarkdown as input/output format (Albert Krewinkel, #2973). - MultiMarkdown was only mentioned as a supported Markdown dialect but not - as a possible input or output format. A brief mention is added - everywhere the other supported markdown dialects are mentioned. - - * Document Org mode as a format containing raw HTML (Albert Krewinkel) - Raw HTML is kept when the output format is Emacs Org mode. - - * Implement `RawInline` and `RawBlock` in sample lua custom writer (#2985). - - * Text.Pandoc.Shared: - - + Introduce blocksToInlines function (Jesse Rosenthal). - This is a lossy function for converting `[Block] -> [Inline]`. Its main - use, at the moment, is for docx comments, which can contain arbitrary - blocks (except for footnotes), but which will be converted to spans. - This is, at the moment, pretty useless for everything but the basic - `Para` and `Plain` comments. It can be improved, but the docx reader - should probably emit a warning if the comment contains more than this. - + Add BlockQuote to blocksToInlines (Jesse Rosenthal). - + Add further formats for `normalizeDate` (Jesse Rosenthal). - We want to avoid illegal dates -- in particular years with greater than - four digits. We attempt to parse series of digits first as `%Y%m%d`, then - `%Y%m`, and finally `%Y`. - + `normalizeDate` should reject illegal years (Jesse Rosenthal). - We only allow years between 1601 and 9999, inclusive. The ISO 8601 - actually says that years are supposed to start with 1583, but MS Word - only allows 1601-9999. This should stop corrupted word files if the date - is out of that range, or is parsed incorrectly. - + Improve year sanity check in normalizeDate (Jesse Rosenthal). - Previously we parsed a list of dates, took the first one, and then - tested its year range. That meant that if the first one failed, we - returned nothing, regardless of what the others did. Now we test for - sanity before running `msum` over the list of Maybe values. Anything - failing the test will be Nothing, so will not be a candidate. - - * Docx reader: - - + Add simple comment functionality. (Jesse Rosenthal). - This adds simple track-changes comment parsing to the docx reader. It is - turned on with `--track-changes=all`. All comments are converted to - inlines, which can list some information. In the future a warning will be - added for comments with formatting that seems like it will be excessively - denatured. Note that comments can extend across blocks. For that reason - there are two spans: `comment-start` and `comment-end`. `comment-start` - will contain the comment. `comment-end` will always be empty. The two - will be associated by a numeric id. - + Enable warnings in top-level reader (Jesse Rosenthal). - Previously we had only allowed for warnings in the parser. Now we allow - for them in the `Docx.hs` as well. The warnings are simply concatenated. - + Add warning for advanced comment formatting. (Jesse Rosenthal). - We can't guarantee we'll convert every comment correctly, though we'll - do the best we can. This warns if the comment includes something other - than Para or Plain. - + Add tests for warnings. (Jesse Rosenthal). - + Add tests for comments (Jesse Rosenthal). - We test for comments, using all track-changes options. Note that we - should only output comments if `--track-changes=all`. We also test for - emitting warnings if there is complicated formatting. - - * README: update to include track-changes comments. (Jesse Rosenthal) - - * Improved Windows installer - don't ignore properties set on command-line. - See #2708. Needs testing to see if this resolves the issue. - Thanks to @nkalvi. - - * Process markdown extensions on command line in L->R order (#2995). - Previously they were processed, very unintuitively, in R->L - order, so that `markdown-tex_math_dollars+tex_math_dollars` - had `tex_math_dollars` disabled. - - * Added `secnumdepth` variable to LaTeX template (#2920). - - * Include table of contents in README.html in Windows package. - - * Writers: treat SoftBreak as space for stripping (Jesse Rosenthal) - In Writers.Shared, we strip leading and trailing spaces for display - math. Since SoftBreak's are treated as spaces, we should strip those - too. - - * beamer, latex templates: pass biblatexoptions directly in package load. - This allows runtime optinos to be used. Fixes jgm/pandoc-citeproc#201 - - * CPP workaround for deprecation of `parseUrl` in http-client. - - * Removed some redundant class constraints. - - * make_oxs_package.sh - use OSX env variable. - - * Replaced INSTALL with INSTALL.md, incorporating INSTALL and the - old installing page from website. - - * Added `winpkg` target to Makefile. This downloads the windows package - from appveyor and signs it using the key. - - * Document Org mode as a format containing raw TeX (Albert Krewinkel). - Raw TeX is kept verbatim when the output format is Emacs Org mode. - - * Support math with haddock-library >= 1.4. - - * Removed `-rtsopts` from library stanza. It has no effect, and Hackage - wouldn't accept the package. - - * Update library dependency versions. - -pandoc (1.17.1) - - * New output format: `docbook5` (Ivo Clarysse). - - * `Text.Pandoc.Options`: Add `writerDocBook5` to `WriterOptions` - (API change). - - * Org writer: - - + Add :PROPERTIES: drawer support (Albert Krewinkel, #1962). - This allows header attributes to be added to org documents in the form - of `:PROPERTIES:` drawers. All available attributes are stored as - key/value pairs. This reflects the way the org reader handles - `:PROPERTIES:` blocks. - + Add drawer capability (Carlos Sosa). For the implementation of the - Drawer element in the Org Writer, we make use of a generic Block - container with attributes. The presence of a `drawer` class defines - that the `Div` constructor is a drawer. The first class defines the - drawer name to use. The key-value list in the attributes defines - the keys to add inside the Drawer. Lastly, the list of Block elements - contains miscellaneous blocks elements to add inside of the Drawer. - + Use `CUSTOM_ID` in properties (Albert Krewinkel). The `ID` property is - reserved for internal use by Org-mode and should not be used. - The `CUSTOM_ID` property is to be used instead, it is converted to the - `ID` property for certain export format. - - * LaTeX writer: - - + Ignore `--incremental` unless output format is beamer (#2843). - + Fix polyglossia to babel env mapping (Mauro Bieg, #2728). - Allow for optional argument in square brackets. - + Recognize `la-x-classic` as Classical Latin (Andrew Dunning). - This allows one to access the hyphenation patterns in CTAN's - hyph-utf8. - + Add missing languages from hyph-utf8 (Andrew Dunning). - + Improve use of `\strut` with `\minipage` inside tables - (Jose Luis Duran). This improves spacing in multiline - tables. - + Use `{}` around options containing special chars (#2892). - + Avoid lazy `foldl`. - + Don't escape underscore in labels (#2921). Previously they were - escaped as `ux5f`. - + brazilian -> brazil for polyglossia (#2953). - - * HTML writer: Ensure mathjax link is added when math appears in footnote - (#2881). Previously if a document only had math in a footnote, the - MathJax link would not be added. - - * EPUB writer: set `navpage` variable on nav page. - This allows templates to treat it differently. - - * DocBook writer: - - + Use docbook5 if `writerDocbook5` is set (Ivo Clarysse). - + Properly handle `ulink`/`link` (Ivo Clarysse). - - * EPUB reader: - - + Unescape URIs in spine (#2924). - + EPUB reader: normalise link id (Mauro Bieg). - - * Docx Reader: - - + Parse `moveTo` and `moveFrom` (Jesse Rosenthal). - `moveTo` and `moveFrom` are track-changes tags that are used when a - block of text is moved in the document. We now recognize these tags and - treat them the same as `insert` and `delete`, respectively. So, - `--track-changes=accept` will show the moved version, while - `--track-changes=reject` will show the original version. - + Tests for track-changes moving (Jesse Rosenthal). - - * ODT, EPUB, Docx readers: throw `PandocError` on unzip failure - (Jesse Rosenthal) Previously, `readDocx`, `readEPUB`, and `readOdt` - would error out if zip-archive failed. We change the archive extraction - step from `toArchive` to `toArchiveOrFail`, which returns an Either value. - - * Markdown, HTML readers: be more forgiving about unescaped `&` in - HTML (#2410). We are now more forgiving about parsing invalid HTML with - unescaped `&` as raw HTML. (Previously any unescaped `&` - would cause pandoc not to recognize the string as raw HTML.) - - * Markdown reader: - - + Added bracket syntax for native spans (#168). - + Fix pandoc title blocks with lines ending in 2 spaces (#2799). - + Added `-s` to markdown-reader-more test. - - * HTML reader: fixed bug in `pClose`. This caused exponential parsing - behavior in documnets with unclosed tags in `dl`, `dd`, `dt`. - - * MediaWiki reader: Allow spaces before `!` in MediaWiki table header - (roblabla). - - * RST reader: Support `:class:` option for code block in RST reader - (Sidharth Kapur). - - * Org reader (all Albert Krewinkel, except where noted otherwise): - - + Stop padding short table rows. - Emacs Org-mode doesn't add any padding to table rows. The first - row (header or first body row) is used to determine the column count, - no other magic is performed. - + Refactor rows-to-table conversion. This refactors - the codes conversing a list table lines to an org table ADT. - The old code was simplified and is now slightly less ugly. - + Fix handling of empty table cells, rows (Albert Krewinkel, #2616). - This fixes Org mode parsing of some corner cases regarding empty cells - and rows. Empty cells weren't parsed correctly, e.g. `|||` should be - two empty cells, but would be parsed as a single cell containing a pipe - character. Empty rows where parsed as alignment rows and dropped from - the output. - + Fix spacing after LaTeX-style symbols. - The org-reader was dropping space after unescaped LaTeX-style symbol - commands: `\ForAll \Auml` resulted in `∀Ä` but should give `∀ Ä` - instead. This seems to be because the LaTeX-reader treats the - command-terminating space as part of the command. Dropping the trailing - space from the symbol-command fixes this issue. - + Print empty table rows. Empty table rows should not - be dropped from the output, so row-height is always set to be at least 1. - + Move parser state into separate module. - The org reader code has become large and confusing. Extracting smaller - parts into submodules should help to clean things up. - + Add support for sub/superscript export options. - Org-mode allows to specify export settings via `#+OPTIONS` lines. - Disabling simple sub- and superscripts is one of these export options, - this options is now supported. - + Support special strings export option Parsing of special strings - (like `...` as ellipsis or `--` as en dash) can be toggled using the `-` - option. - + Support emphasized text export option. Parsing of emphasized text can - be toggled using the `*` option. This influences parsing of text marked - as emphasized, strong, strikeout, and underline. Parsing of inline math, - code, and verbatim text is not affected by this option. - + Support smart quotes export option. Reading of smart quotes can be - toggled using the `'` option. - + Parse but ignore export options. All known export options are parsed - but ignored. - + Refactor block attribute handling. A parser state attribute was used - to keep track of block attributes defined in meta-lines. Global state - is undesirable, so block attributes are no longer saved as part of the - parser state. Old functions and the respective part of the parser state - are removed. - + Use custom `anyLine`. Additional state changes need to be made after - a newline is parsed, otherwise markup may not be recognized correctly. - This fixes a bug where markup after certain block-types would not be - recognized. - + Add support for `ATTR_HTML` attributes (#1906). - Arbitrary key-value pairs can be added to some block types using a - `#+ATTR_HTML` line before the block. Emacs Org-mode only includes these - when exporting to HTML, but since we cannot make this distinction here, - the attributes are always added. The functionality is now supported - for figures. - + Add `:PROPERTIES:` drawer support (#1877). - Headers can have optional `:PROPERTIES:` drawers associated with them. - These drawers contain key/value pairs like the header's `id`. The - reader adds all listed pairs to the header's attributes; `id` and - `class` attributes are handled specially to match the way `Attr` are - defined. This also changes behavior of how drawers of unknown type - are handled. Instead of including all unknown drawers, those are not - read/exported, thereby matching current Emacs behavior. - + Use `CUSTOM_ID` in properties. See above on Org writer changes. - + Respect drawer export setting. The `d` export option can be used - to control which drawers are exported and which are discarded. - Basic support for this option is added here. - + Ignore leading space in org code blocks (Emanuel Evans, #2862). - Also fix up tab handling for leading whitespace in code blocks. - + Support new syntax for export blocks. Org-mode version 9 - uses a new syntax for export blocks. Instead of `#+BEGIN_<FORMAT>`, - where `<FORMAT>` is the format of the block's content, the new - format uses `#+BEGIN_export <FORMAT>` instead. Both types are - supported. - + Refactor `BEGIN...END` block parsing. - + Fix handling of whitespace in blocks, allowing content to be indented - less then the block header. - + Support org-ref style citations. The *org-ref* package is an - org-mode extension commonly used to manage citations in org - documents. Basic support for the `cite:citeKey` and - `[[cite:citeKey][prefix text::suffix text]]` syntax is added. - + Split code into separate modules, making for cleaner code and - better decoupling. - - * Added `docbook5` template. - - * `--mathjax` improvements: - - + Use new CommonHTML output for MathJax (updated default MathJax URL, - #2858). - + Change default mathjax setup to use `TeX-AMS_CHTML` configuration. - This is designed for cases where the input is always TeX and maximal - conformity with TeX is desired. It seems to be smaller and load faster - than what we used before. See #2858. - + Load the full MathJax config to maximize loading speed (KolenCheung). - - * Bumped upper version bounds to allow use of latest packages - and compilation with ghc 8. - - * Require texmath 0.8.6.2. Closes several texmath-related bugs (#2775, - #2310, #2310, #2824). This fixes behavior of roots, e.g. - `\sqrt[3]{x}`, and issues with sub/superscript positioning - and matrix column alignment in docx. - - * README: - - + Clarified documentation of `implicit_header_references` (#2904). - + Improved documentation of `--columns` option. - - * Added appveyor setup, with artifacts (Jan Schulz). - - * stack.yaml versions: Use proper flags used for texmath, pandoc-citeproc. - - * LaTeX template: support for custom font families (vladipus). - Needed for correct polyglossia operation with Cyrillic fonts and perhaps - can find some other usages. Example usage in YAML metadata: - - fontfamilies: - - name: \cyrillicfont - font: Liberation Serif - - name: \cyrillicfonttt - options: Scale=MatchLowercase - font: Liberation - - * Create unsigned msi as build artifact in appveyor build. - - * On travis, test with ghc 8.0.1; drop testing for ghc 7.4.1. - -pandoc (1.17.0.3) - - * LaTeX writer: Fixed position of label in figures (#2813). - Previously the label wasn't in the right place, and `\ref` - wouldn't work properly. - * Added .tei test files to pandoc.cabal so they'll be included - in tarball (#2811). - * Updated copyright dates. - -pandoc (1.17.0.2) - - * Fixed serious regression in `htmlInBalanced`, which caused - newlines to be omitted in some raw HTML blocks in Markdown - (#2804). - -pandoc (1.17.0.1) - - * File scope is no longer used when there are no input files (i.e., - when input comes from stdin). Previously file scope was triggered - when the `json` reader was specified and input came from `stdin`, - and this caused no output to be produced. (Fix due to Jesse Rosenthal; - thanks to Fedor Sheremetyev for calling the bug to our attention.) - * Improved documentation of templates (#2797). - -pandoc (1.17) - - * Added `--file-scope` option (Jesse Rosenthal). - By default pandoc operates on multiple files by first concatenating - them (around extra line breaks) and then processing the joined file. So - it only parses a multi-file document at the document scope. This has the - benefit that footnotes and links can be in different files, but for - some purposes it is useful to parse the individual files first - and then combine their outputs (e.g. when the files use footnotes - or links with the same labels). The `--file-scope` option causes - pandoc to parse the files first, and then combine the parsed output, - instead of combining before parsing. `--file-scope` is selected - automatically for binary input files (which cannot be concatenated) - and for pandoc json. - - * Add TEI Writer (Chris Forster) and `tei` output format. - - * Added a general `ByteStringReader` with warnings, used by the docx - reader (API change, Jesse Rosenthal). - - * Add `readDocxWithWarnings` (API change, Jesse Rosenthal). - - * Changed type of `Shared.uniqueIdent`'s argument from `[String]` - to `Set String.` This avoids performance problems in documents with - many identically named headers (API change, #2671). - - * Removed `tex_math_single_backslash` from `markdown_github` options - (#2707). - - * Make language extensions as well as full language names - trigger syntax highlighting. For example, `py` will now work as - well as `python` (jgm/highlighting-kate#83). - - * Added `institute` variable to latex, beamer templates (Fraser - Tweedale, Josef Svenningsson). - - * Docx reader (Jesse Rosenthal): - - + Handle alternate content. Some word functions (especially graphics) - give various choices for content so there can be backwards compatibility. - + Don't turn numbered headers into lists. - + Docx Reader: Add state to the parser, for warnings - + Update feature checklist in source code. - + Get rid of `Modifiable` typeclass. - + Add tests for adjacent hyperlinks. - + Add a "Link" modifier to `Reducible`. We want to make sure that - links have their spaces removed, and are appropriately smushed - together (#2689). - - * HTML reader: - - + Fixed behavior of base tag (#2777). - If the base path does not end with slash, the last component - will be replaced. E.g. base = `http://example.com/foo` - combines with `bar.html` to give `http://example.com/bar.html`. - If the href begins with a slash, the whole path of the base - is replaced. E.g. base = `http://example.com/foo/` combines - with `/bar.html` to give `http://example.com/bar.html`. - + Rewrote `htmlInBalanced`. This version avoids an exponential - performance problem with `<script>` tags, and it should be faster - in general (#2730). - + Properly handle an empty cell in a simple table (#2718). - + Handle multiple `<meta>` tags with same name. Put them in a list - in the metadata so they are all preserved, rather than (as before) - throwing out all but one.. - - * Markdown reader: - - + Improved pipe table parsing (#2765). - + Allow `+` separators in pipe table cells. We already allowed - them in the header, but not in the body rows, for some reason. - This gives compatibility with org-mode tables. - + Don't cross line boundary parsing pipe table row. - Previously an Emph element could be parsed across the newline - at the end of the pipe table row. - + Use `htmlInBalanced` for `rawVerbatimBlock`, for better - performance (#2730). - + Fixed bug with smart quotes around tex math. - - * LaTeX reader: - - + Handle interior `$` characters in math (#2743). For example, - `$$\hbox{$i$}$$`. - + `inlineCommand` now gobbles an empty `{}` after any command (#2687). - This gives better results when people write e.g. `\TeX{}` in Markdown. - + Properly handle LaTeX "math" environment as inline math (#2171). - - * Textile reader: Support `>`, `<`, `=`, `<>` text alignment attributes. - Closes #2674. - - * Org reader (Albert Krewinkel): - - + Prefix even empty figure names with "fig:" (#2643). The - convention used by pandoc for figures is to mark them by prefixing - the name with `fig:`. The org reader failed to do this if a figure - had no name. - + Refactor link-target processing (#2684). - - * ConTeXt writer: Fix whitespace at line beginning in line blocks (#2744). - Thanks to @c-foster. - - * HTML writer: Don't include alignment attribute for default table columns. - Previously these were given "left" alignment. Better to leave off - alignment attributes altogether (#2694). - - * Markdown writer: Use hyphens for YAML metadata block bottom line, for - better compatibility with other Markdown flavors (Henrik Tramberend). - - * LaTeX writer: - - + Use image identifier to create a label and hypertarget for - figures (Mauro Bieg). - + Avoid double toprule in headerless table with caption (#2742). - + Clean up options parser (Jesse Rosenthal). - + Treat `memoir` template with `article` option as article, instead - of treating all `memoir` templates as books. - + Allow more flexible table alignment (Henrik Tramberend, #2665). - New default is not to include `[c]` option (which is the default - anyway if no positioning is specified). Now LaTeX emplates can - control the overall table alignment in a document by setting the - longtable length variables `LTleft` and `LTright`. For example, - `\setlength\LTleft\parindent\setlength\LTright\fill` - will create left-aligned tables that respect paragraph indentation. - - * Docx writer: Handle image alt text (#2754, Mauro Bieg). - - * Org writer - pass through RawInline with format "org". - - * DokuWiki writer: use `$$` for display math. - - * Custom writer: Pass attributes parameter to CaptionedImage (#2697). - - * Make protocol-relative URIs work again (#2737). - - * make_osx_package.sh: Use env variable for developer id certs. - - * Raise `tagsoup` lower bound to 0.13.7 to fix entity-related - problems (#2734). - - * Allow `zip-archive` 0.3. - - * Allow `aeson` 0.11. - -pandoc (1.16.0.2) - - * Depend on deepseq rather than deepseq-generics (fpco/stackage#1096). - - * Fixed regression in latex smart quote parsing (#2645). - In cases where a match was not found for a quote, everything - from the open quote to the end of the paragraph was being dropped. - -pandoc (1.16.0.1) - - * Fixed regression with `--latex-engine` (#2618). In 1.16 `--latex-engine` - raises an error if a full path is given. - - * Org reader: Fix function dropping subtrees tagged `:noexport` - (Albert Krewinkel, #2628): - - * Markdown reader: renormalize table column widths if they exceed 100% - (#2626). - - * Textile reader: don't allow block HTML tags in inline contexts. - The reader previously did allow this, following redcloth, - which happily parses - - Html blocks can be <div>inlined</div> as well. - - as - - <p>Html blocks can be <div>inlined</div> as well.</p> - - This is invalid HTML. The above sample now produces; - - <p>Html blocks can be</p> - <div> - <p>inlined</p> - </div> - <p>as well.</p> - - * Improved default template lookup for custom lua scripts (#2625). - Previously, if you tried to do `pandoc -s -t /path/to/lua/script.lua`, - pandoc would look for the template in - `~/.pandoc/templates/default./path/to/lua/script.lua`. - With this change it will look in the more reasonable - `~/.pandoc/templates/default.script.lua`. This makes it possible to - store default templates for custom writers. - - * RST, Markdown writers: Fixed rendering of grid tables with blank rows - (#2615). - - * LaTeX writer: restore old treatment of Span (#2624). A Span is - now rendered with surrounding `{}`, as it was before 1.16. - - * Entity handling fixes: improved handling of entities like - `⟨` that require a trailing semicolon. Allow uppercase - `x` in numerical hexadecimal character references, working - around a tagsoup bug. - - * `stack.yaml` - use lts-4.0, but with older aeson to avoid excessive - memory use on compile. With aeson 0.10 we were getting an out of - memory error on a 2GB Ubuntu 64-bit VM. - - * Improved deb package creation script. Made `DPKGVER` work. - Renamed `COMMIT` to `TREE`. You should now be able to do - `TREE=1.16.0.1 DPKGVER=2 make deb`. - - -pandoc (1.16) - - * Added `Attr` field to `Link` and `Image` (Mauro Bieg, #261, API change). - - + Added syntax for link and image attributes to pandoc's Markdown. - + Updated readers and writers to use link and image attributes - when appropriate. - + Support image attributes in Docx, Textile, RST readers. - - * Renamed link attribute extensions. The old `link_attributes` is - now `mmd_link_attributes`, and `link_attributes` now enables the - new pandoc-style link and image attributes (API change). - Note: this change could break some existing workflows. - - * Implemented `SoftBreak` and new `--wrap` option (#1701, API change). - Added threefold wrapping option. - - + Command line option: deprecated `--no-wrap`, added - `--wrap=[auto|none|preserve]` - + Added `WrapOption`, exported from `Text.Pandoc.Options` - + Changed type of `writerWrapText` in `WriterOptions` from - `Bool` to `WrapOption`. - + Modified `Text.Pandoc.Shared` functions to allow `SoftBreak`. - + Supported `SoftBreak` in readers and writers. - - * Text.Pandoc.Options: Added `writerDpi` to `WriterOptions` (API - change, Mauro Bieg). - - * Added `--dpi` command-line option (Mauro Bieg). - - * Rationalized behavior of `--no-tex-ligatures` and `--smart` (#2541). - This change makes `--no-tex-ligatures` affect the LaTeX reader - as well as the LaTeX and ConTeXt writers. If it is used, - the LaTeX reader will parse characters `` ` ``, `'`, and `-` - literally, rather than parsing ligatures for quotation marks - and dashes. And the LaTeX writer will print unicode quotation - mark and dash characters literally, rather than converting - them to the standard ASCII ligatures. Note that `--smart` has - no effect on the LaTeX reader. `--smart` is still the default - for all input formats when LaTeX or ConTeXt is the output format, - *unless* `--no-tex-ligatures` is used. - - Some examples to illustrate the logic: - - ``` - % echo "'hi'" | pandoc -t latex - `hi' - % echo "'hi'" | pandoc -t latex --no-tex-ligatures - 'hi' - % echo "'hi'" | pandoc -t latex --no-tex-ligatures --smart - ‘hi’ - % echo "'hi'" | pandoc -f latex --no-tex-ligatures - <p>'hi'</p> - % echo "'hi'" | pandoc -f latex - <p>’hi’</p> - ``` - - * Removed deprecated options `--offline` and `--html5`. - - * Fixed language code for Czech (`cs` not `cz`) (#2597). - - * Implemented `east_asian_line_breaks` extension (#2586). - In `Text.Pandoc.Options`, added `Ext_east_asian_line_breaks` constructor - to `Extension` (API change). This extension is like - `ignore_line_breaks`, but smarter -- it only ignores line breaks - between two East Asian wide characters. This makes it better suited - for writing with a mix of East Asian and non-East Asian scripts. - - * Added support for PDF creation via `wkhtmltopdf`. - To use this: `pandoc -t html5 -o result.pdf` (and add `--mathjax` - if you have math.) Margins can be set using the variables - `margin-top`, `margin-bottom`, `margin-left`, `margin-right`. - Other styling can be done through CSS. - - * Fixed cite key parsing regression (jgm/pandoc-citeproc#201). - We were capturing final colons as in `[@foo: bar]`; the citation id - was being parsed as `@foo:`. - - * ICML writer: - - + Fixed image syntax for local files (#2589). - + Changed type of `writeICML` (Mauro Bieg). - API change: It is now `WriterOptions -> Pandoc -> IO String`. - Also handle new image attributes. - + Intersperse line breaks instead of appending them to - every `ParagraphStyleRange` (Mauro Bieg, #2501). - + Add `Cite` style to citations (Mauro Bieg). - + Added figure handling (#2590, Mauro Bieg). - + Better handling of math. Instead of just printing the raw tex, - we now try to fake it with unicode characters. - - * HTML writer: Include `example` class for example lists (#2524). - - * ODT/OpenDocument writer: improved image attributes (Mauro Bieg). - - + Support for percentage widths/heights - + Use `Attr` instead of title to get dimensions from ODT walker - to `writeOpenDocument`. - - * AsciiDoc writer: - - + Support anchors in spans and divs with id elements - (jgm/pandoc-citeproc#143). - + Fixed code blocks (#1861). - - * Haddock writer: omit formatting inside links, which isn't supported - by Haddock (#2515). - - * MediaWiki writer: Fixed spacing issues in table cells. - - + Start cell on new line unless it's a single Para or Plain - (#2606). - + For single Para or Plain, insert a space after the `|` to - avoid problems when the text begins with a character like - `-` (#2604). - - * Beamer writer: mark frame as fragile when it contains verbatim (#1613). - - * LaTeX writer: - - + Add support for GAP highlighting using listings (Raniere Silva). - + Consider `header-includes` content as well as templates - when determining whether to use csquotes (Andreas Lööw). - + Create defaults for geometry using `margin-left` etc. - If `geometry` has no value, but `margin-left`, `margin-right`, - `margin-top`, and/or `-margin-bottom` are given, a default value - for `geometry` is created from these. Note that these variables - already affect PDF production via HTML5 with `wkhtmltopdf`. - - * ConTeXt writer: set default layout based on `margin-left`, etc. - This sets up `\setuplayout` based on the variables `margin-left`, - `margin-right`, `margin-bottom`, and `margin-top`, if no layout - is given. - - * Docx writer: better handling of PDF images. Previously we tried - to get the image size from the image even if an explicit size was - specified. Since we still can't get image size for PDFs, this made - it impossible to use PDF images in docx. Now we don't try to get - the image size when a size is already explicitly specified. - - * Markdown writer: use raw HTML for link/image attributes when - the `link_attributes` extension is unset and `raw_html` is set (#2554). - - * MediaWiki reader: interpret markup inside `<tt>`, `<code>` (#2607). - - * LaTeX reader: - - + Improved smart quote parsing (#2555). This fixes redering of - unmatched quotes. - + Use curly quotes for unmatched ` (#2555). - + Allow blank space between braced arguments of commands (#2592). - - * Markdown reader: - - + Improved pipe table relative widths. Previously pipe table - columns got relative widths (based on the header underscore lines) - when the source of one of the rows was greater in width than the - column width. This gave bad results in some cases where much of - the width of the row was due to nonprinting material (e.g. link - URLs). Now pandoc only looks at printable width (the width of a - plain string version of the source), which should give better results. - Thanks to John Muccigrosso for bringing up the issue. - + Fixed parsing bug with macros. Previously macro definitions in - indented code blocks were being parsed as macro definitions, not code. - - * Textile reader: skip over attribute in image source (#2515). - We don't have a place yet for styles or sizes on images, but - we can skip the attributes rather than incorrectly taking them - to be part of the filename. - - * Docx reader: Handle dummy list items (Jesse Rosenthal). - These come up when people create a list item and then delete the - bullet. It doesn't refer to any real list item, and we used to ignore - it. - - * CommonMark reader/writer rewritten to use latest `cmark`. - - * Fixed Emoji character definitions (#2523). There were many bugs in the - definitions. - - * `Text.Pandoc.CSS`: - - + Added `pickStylesToKVs` function to extract multiple properties at - once (API change, Mauro Bieg). - + Parse CSS that doesn't contain the optional semicolon (Mauro Bieg). - - * `trypandoc`: sort drop-down lists. - - * Beamer template: - - + Made `\euro` conditional on presence of character. - for xelatex and lualatex, as it is for pdflatex (Andrew Dunning). - + Moved `header-includes` before setting of title (Thomas Hodgson), - to match the LaTeX template (jgm/pandoc-templates#168). - + Added `section-titles` variable (defaults to true) - to enable/suppress section title pages in beamer - slide shows (Thomas Hodgson). - + Moved beamer themes after fonts, so that themes can - change fonts. (Previously the fonts set were being - clobbered by lmodern.sty.) (Thomas Hodgson). - - * Beamer/LaTeX template changes (Thomas Hodgson): - + Added `thanks` variable - + Use `parskip.sty` when `indent` isn't set (fall back to using - `setlength` as before if `parskip.sty` isn't available). - + Use `biblio-style` with biblatex. - + Added `biblatexoptions` variable. - - * LaTeX template changes: - - + Added `paper` after `$papersize$` variable in latex template. - Thus you can say `papersize: a4` and the latex will contain - `a4paper`. This change may break some existing workflows; if - you currently specify `a4paper`, you'll get `a4paperpaper` which - is meaningless. However, the change seems worth it, as it will - make the `papersize` variable work uniformly across ConTeXt, LaTeX, - and html->pdf via wkhtmltopdf. - + Only pass options to color package if `colorlinks` is set - (Andrew Dunning). - + Make definition of `\euro` conditional in xelatex/lualatex, - as it is already for pdflatex (Andrew Dunning). - + Removed setting of `subject` in PDF metadata. - This used to be set to the subtitle, but really the subtitle - need not give the subject. Also, `subtitle` can contain formatting, - so we'd need, at least, a plain text version for this. - + Moved `header-includes` before setting of `\title`, `\author`, - etc. This allows these macros to be redefined. - + Use `\subtitle` command for `subtitle`, instead of tacking it - on to the title as before. We give a no-op fallback definition if it - is not defined. This change should produce much better results - in classes that support `\subtitle`. With the default article - class, which does not define `\subtitle`, subtitles will no - longer be printed unless the user defines `\subtitle` and - redefines `\maketitle`. - + Moved redefinitions of `\paragraph` and `\subparagraph` to - before header-includes. - - * Context template: - - + Use `simplefonts` for font loading (Paolo Rodríguez). This is - needed for things to work on ConTeXt stable from TeXLive 2015. - + Revert use of `\setuphead` in title block (Andrew Dunning, - Rik Kabel). - - * Update LaTeX/ConTeXt link colour usage (Andrew Dunning). - - * Fixed man template so disabling hyphenation actually works. - The command needs to come after .TH. - - * Added 'navigation' variable to beamer template (#2543). - Valid values are `empty` (the default), `horizontal`, `vertical`, - and `frame`. Note that this changes the default behavior from - `horizontal` to `empty`. Closes #2543. - - * Added `toc` to HTML slide format templates (Andrew Dunning), - so that `--toc` creates a contents slide. - - * Added `stack.full.yaml` to build `pandoc-citeproc` as well. - - * Allow pipe tables with no body rows (#2556). - Previously this raised a runtime error. - - * Shared: Improved `fetchItem` so that `C:/Blah/Blah.jpg` isn't treated - as URL. The Haskell URI parsing routines will accept "C:" as a - scheme, so we rule that out manually. This helps with - `--self-contained` and absolute Windows paths. - - * Define a `meta-json` variable for all writers (#2019). This contains - a JSON version of all the metadata, in the format selected for the - writer. So, for example, to get just the YAML metadata, you can run - pandoc with the following custom template: `$meta-json$`. The intent - is to make it easier for static site generators and other tools to get - at the metadata. - - * Document limitations of --self-contained (#2553). - - * Improved Citations section of README (#2551). Added information - about `link-citations` and a link to the pandoc-citeproc man page. - - * `ImageSize`: use `safeRead` instead of `readMaybe`, which isn't - in base < 4.6. - - * Allow .adoc file extension for AsciiDoc (Andrew Dunning). - - * Improved implicit pandoc-citeproc inclusion. - The filter pandoc-citeproc is automatically used when - `--bibliography` is specified on the command line, unless - `--natbib` or `--biblatex` is used. However, previously this - only worked if `--bibliography` was spelled out in full, and not - if `--biblio` was used. - - * reveal.js: Interpret pauses correctly for all headers (#2530). - Previously, when using headers below the slide level, pauses are left - uninterpreted into pauses. In my opinion, unexpected behavior but - intentional looking at the code. - - * Remove redundant `center` variable for reveal.js (Andrew Dunning). - - * Parsing: Add `extractIdClass`, modified type of `KeyTable` (Mauro - Bieg, API change). - - * ImageSize: Added functions for converting between image dimensions - (Mauro Bieg). - - * Use lts-3.18 in stack.yaml. This avoids Windows build - issues with the HTTP library. - - * Bump version bounds for dependencies. - -pandoc (1.15.2.1) - - * Added two missing test files, and `stack.yaml`, to - `extra-source-files` so they're included in the source tarball. - - * reveal.js template: Fixed parallaxBackground options. - `parallaxBackgroundHorizontal` and `parallaxBackgroundVertical` - need integer values, not strings. (Vaughn Iverson) - -pandoc (1.15.2) - - * `pandoc my.md -t context -o my.pdf` will now create a PDF using - ConTeXt rather than LaTeX (#2463). - - * Fixed omitted `url(...)` in CSS data-uri with `--self-contained` (#2489). - - * Added `emoji` Markdown extension, enabled by default in `markdown_github` - (#2523). Added `Ext_emoji` to `Extension` in `Text.Pandoc.Options` - (API change). - - * `Text.Pandoc.Readers.HTML.parseTags`: Fixed over-eager raw HTML inline - parsing (#2469). Tightened up the inline HTML parser so it disallows - TagWarnings. - - * Derive `Generic` instances for the types in `Text.Pandoc.Options`. - - * Org reader: - - + Fix paragraph/list interaction (Albert Krewinkel, #2464). - Paragraphs can be followed by lists, even if there is no blank line - between the two blocks. However, this should only be true if the - paragraph is not within a list, were the preceding block should be - parsed as a plain instead of paragraph (to allow for compact lists). - Thanks to @rgaiacs for bringing this up. - + Allow toggling header args (Albert Krewinkel, #2269). - Org-mode allows to skip the argument of a code block header argument if - it's toggling a value. Argument-less headers are now recognized, - avoiding weird parsing errors. - + Fix markup parsing in headers (Albert Krewinkel, #2504). - Markup as the very first item in a header wasn't recognized. This was - caused by an incorrect parser state: positions at which inline markup - can start need to be marked explicitly by changing the parser state. - This wasn't done for headers. The proper function to update the state - is now called at the beginning of the header parser, fixing this issue. - + Fix emphasis rules for smart parsing (Albert Krewinkel, #2513). - Smart quotes, ellipses, and dashes should behave like normal quotes, - single dashes, and dots with respect to text markup parsing. - + Require whitespace around definition list markers (#2518). - This rule was not checked before, resulting in bugs with footnotes - and some link types. - - * Markdown reader: - - + Pipe tables with long lines now get relative cell widths (#2471). - If a pipe table contains a line longer than the column width (as set by - `--columns` or 80 by default), relative widths are computed based on the - widths of the separator lines relative to the column width. This should - solve persistent problems with long pipe tables in LaTeX/PDF output, and - give more flexibility for determining relative column widths in other - formats, too. For narrower pipe tables, column widths of 0 are used, - telling pandoc not to specify widths explicitly in output formats that - permit this. - + Improved parser for `mmd_title_block`. We now allow blank metadata - fields. These were explicitly disallowed before. - + Citation keys can now contain `://`, so URLs and DOIs can be used - as citation keys (jgm/pandoc-citeproc#166). - - * Beamer template: fix incompatibility of section slides with natbib. - Natbib (and presumably biblatex) bibliography commands create - their own section. Since these are in frame environments, - we have an incompatibility with the `\AtBeginSection` macro - which creates a special frame when a new section occurs. - (We can't have a frame inside another frame.) This change disables - `\AtBeginSection` inside bibliography slides. Thinks to Yihui Xie for - bringing the problem to my attention. This supersedes #145. See - discussion there. - - * Textile reader: don't do smart punctuation unless explicitly asked - (#2480). Note that although smart punctuation is part of the textile - spec, it's not always wanted when converting from textile - to, say, Markdown. So it seems better to make this an option. - - * LaTeX reader: Handle `comment` environment (Arata Mizuki). - The `comment` environment is handled in a similar way to the - `verbatim` environment, except that its content is discarded. - - * Docx reader: Follow relationships correctly in foot/endnotes (#2258, - Jesse Rosenthal). This fixes a problem with links in notes. - - * LaTeX and ConTeXt writers: support `lang` attribute on divs and spans - (Mauro Bieg). For LaTeX, also collect `lang` and `dir` attributes on - spans and divs to set the `lang`, `otherlangs` and `dir` variables if - they aren’t set already. See #895. - - * LaTeX writer: - - + Use proper command for `\textarabic` (Mauro Bieg). - + Added `de-CH-1901`, fixed `el-polyton` in `toPloyglossia` (Nick Bart). - + Use `\hypertarget` and `\hyperlink` for links. This works correctly - to link to Div or Span elements. We now don't bother defining `\label` - for Div or Span elements. Closes jgm/pandoc-citeproc#174. - + Avoid footnotes in list of figures (#1506). - + Properly handle footnotes in captions (#1506). - + Add `\protect` to `\hyperlink` (#2490). Thanks to Hadrien Mary. - + Set `colorlinks` if `linkcolor`, `urlcolor`, `citecolor`, or - `toccolor` is set (#2508). - - * Textile writer: support start number in ordered lists (#2465). - - * OpenDocument writer: Allow customization of opendocument - automatic styles. Automatic styles can now be inserted in the - template, which now provides the enclosing `<office:automatic-styles>` - tags (#2520). - - * Docx writer: insert space between footnote reference and note (#2527). - This matches Word's default behavior. - - * EPUB writer: don't download linked media when `data-external` attribute - set (#2473). By default pandoc downloads all linked media and includes it - in the EPUB container. This can be disabled by setting `data-external` on - the tags linking to media that should not be downloaded. Example: - - <audio controls="1"> - <source src="http://example.com/music/toccata.mp3" - data-external="1" type="audio/mpeg"> - </source> - </audio> - - * HTML writer: use width on whole table if col widths sum to < 100%. - Otherwise some browsers display the table with the columns - separated far apart. - - * AsciiDoc template: Fix `author` and `date`; add `keywords`, - `abstract` (Andrew Dunning). - - * HTML-based templates (Andrew Dunning): - - + Use en dash instead of hyphen between title prefix and title. - + Add `keywords` to metadata. - + Add `lang`, `dir`, `quotes` where missing. - + Always make author and date display conditional. - + Updated dzslides template from source. - - * Man template: make "generated by" comment conditional. - - * LaTeX, Beamer templates: - - + Add `babel-otherlangs` for language divs/spans; `babel-newcommands`, - filled by commands that make babel understand the polyglossia-style - language directives (Mauro Bieg, #137). - + Improved formatting of conditionals; `$for$` is always provided to allow - multiple options (Andrew Dunning, #141). - + Use `Ligatures=TeX` rather than `Mapping=tex-text` with `fontspec` - to improve support for LuaTeX (Andrew Dunning, #135). - + Revise `hyperref` usage (Andrew Dunning, #139, #141): - - use same options for all LaTeX engines; - - add `subtitle` and `keywords` to PDF metadata; - - do not override `hyperref` link coloring without user input, effectively making - the `hidelinks` option the default (removed as a separate variable); - - link colors can be enabled (using a slightly darker version of the old - defaults) using a new `colorlinks` variable, automatically used by - the LaTeX writer when custom colors are specified; - - `pdfborder={0 0 0}` is automatically set by `hyperref` with - `colorlinks`, and is only applied if `colorlinks` is disabled. - - * ConTeXt template (Andrew Dunning): - - + New variables for controlling styles: `linkstyle`, `linkcolor`, - `linkcontrastcolor`, `layout`, `pagenumbering`, `whitespace`, `indenting`, - `interlinespace`, `headertext`, `footertext`, `mainfont`, `sansfont`, - `monofont`, `mathfont`, `fontsize`. - + Default template no longer supports MkII. - + Improve writing of title block (suppressing numbering of first page). - + Add `title` `subtitle`, `author`, `date`, `keywords` to PDF metadata. - + Support `subtitle`, `abstract`. - + Support list of figures (`lof`), list of tables (`lot`). - + Disable link styling by default. - + Define styles for all section types. - + Enable microtype. - + Improved formatting of conditionals. - - * Beamer template: added code to prevent slide breaks inside paragraphs - (#2422, thanks to Nick Bart). This will matter, in practice, only when - `allowframebreaks` is used. It is especially helpful for bibliography - slides. - - * OpenDocument template: Add `<office:automatic-styles>` tag around - automatic styles. The writer now longer provides this (see #2520). - - * Restored Text.Pandoc.Compat.Monoid. - - * Do not export (<>) from custom Prelude. The Prelude now matches - base 4.8 Prelude's API. - - * Don't use custom prelude with ghc 7.10. Use the custom prelude - only for earlier versions. This change makes `stack ghci` and - `cabal repl` work (#2503), at least with ghc 7.10. - - * Changed § to % in operators from Odt.Arrows.Utils (#2457). - This prevents problems building haddocks with "C" locale. - - * Change default for old-locale flag to False. - - * Use stack in deb, osx, and Windows package generators. - - * Added Vagrantfile for building deb in vm. - This should help in automating binary package creation. 'make package' - will make the package. 'make package COMMIT=blah' will make the package - from commit blah. - - * README: - - + Consistent capitalization for pandoc and Markdown. - + Fixed `auto_identifiers` examples (Benoit Schweblin). - + Improved documentation of template variables (Andrew Dunning). - -pandoc (1.15.1.1) - - * `Text.Pandoc.Data`: store paths in dataFiles using posix separators. - This way we have uniform separators, whether on Windows or Linux. - This should solve a problem where on some Windows versions - the data files weren't being found (#2459). - -pandoc (1.15.1) - - * `pandocVersion` is now defined in `Text.Pandoc.Shared` - and reexported from `Text.Pandoc` (Alex Vong). This allows - writers to access it. (Alex Vong) (API change) - - * For `markdown_mmd`, add: `implicit_figures`, `superscripts`, - `subscripts` (#2401). - - * Added `odt` as input format (Martin Linnemann). Added new module - `Text.Pandoc.Reader.ODT` (API change). Fully implemented features: - Paragraphs, Headers, Basic styling, Unordered lists, Ordered lists, - External Links, Internal Links, Footnotes, Endnotes, Blockquotes. - Partly implemented features: Citations, Tables. - - * Markdown Reader: - - + Add basic tests for each header style (Ophir Lifshitz). - + Add implicit header ref tests for headers with spaces (Ophir Lifshitz). - + Skip spaces in headers (Ophir Lifshitz). - + Handle 'id' and 'class' in parsing key/value attributes (#2396). - `# Header {id="myid" class="foo bar"}` - is now equivalent to `# Header {#myid .foo .bar}`. - + Use '=' instead of '#' for atx-style headers in markdown+lhs. - (Kristof Bastiaensen) - + Pipe tables: allow indented columns. Previously the left-hand column - could not start with 4 or more spaces indent. This was inconvenient - for right-aligned left columns. Note that the first (header column) - must still have 3 or fewer spaces indentation, or the table will be - treated as an indented code block. - + Fix regression: allow HTML comments containing `--`. - Technically this isn't allowed in an HTML comment, but - we've always allowed it, and so do most other implementations. - It is handy if e.g. you want to put command line arguments - in HTML comments. - - * LaTeX reader: - - + Don't eat excess whitespace after macros with only optional - arguments (#2446). - + Support longtable (#2411). - + Implement `\Cite` (#2335). - + Support abstract environment. The abstract populates an - `abstract` metadata field. - + Properly handle booktabs lines. Lines aren't part of the - pandoc table model, so we just ignore them (#2307). - - * HTML reader: - - + Handle type attribute on ol, e.g. `<ol type="i">` (#2313). - + Updated for new automatic header attributes. - + Add auto identifiers if not present on headers. This makes - TOC linking work properly. - + Detect `font-variant` with `pickStyleAttrProps` (Ophir Lifshitz). - + Test `<ol>` type, class, and inline list-style(-type) CSS - (Ophir Lifshitz). - + Better handling of "section" elements (#2438). Previously - `<section>` tags were just parsed as raw HTML blocks. With - this change, section elements are parsed as Div elements with - the class "section". - - * MediaWiki reader: handle unquoted table attributes (#2355). - - * DocBook reader: - - + Added proper support for DocBook `xref` elements (Frerich Raabe). - Added `dbContent` field to reader state, so we can lookup - cross refs. - + Handle `informalexample` (#2319). - - * Docx Reader: - - + Create special punctuation test (Ophir Lifshitz). - + Parse soft, no-break hyphen elements (Ophir Lifshitz). - + Updated headers test (Ophir Lifshitz). Replaced `styles.xml` - in `headers.docx` with pandoc's current `styles.xml`, which - contains styles for Heading 1 through 6. Added Heading 4 - through 7 to the test document. Note that Heading 7 is not - parsed as a Heading because there is no Heading 7 style. - - * RST reader: better handling of indirect roles. - Previously the parser failed on this kind of case - - .. role:: indirect(code) - - .. role:: py(indirect) - :language: python - - :py:`hi` - - Now it correctly recognizes `:py:` as a code role. - - * Org reader: - - + Add auto identifiers if not present on headers - (#2354, Juliusz Gonera). - + Allow verse blocks to contain empty lines (#2402, - Albert Krewinkel). - - * EPUB reader: stop mangling external URLs (#2284). - - * RST writer: - - + Don't insert `\ ` when complex expression in matched pairs. - E.g. `` [:sup:`3`] `` is okay; you don't need `` [:sup:`3`\ ] ``. - + Ensure that `\ ` is inserted when needed before Cite and Span - elements that begin with a "complex" element (jgm/pandoc-citeproc#157). - + Normalize headers only in "standalone" mode (#2394). - - * Haddock writer: escape `*` and `^` (G. Bataille). - - * Markdown writer: - - + In TOC, add links to headers (#829). - + Use unicode super/subscripts for digits in plain output - (when the `superscripts` and `subscripts` extensions are - not enabled). - - * Docx writer: - - + Moved invalid character stripping to `formattedString`. - This avoids an inefficient generic traversal (#2356). - + Use user data directory for `reference.docx` archive. - This allows the test suite to work without installing pandoc first. - It also brings the docx writer in line with the odt writer. - + Tests: docx writer tests now use `../data` for data directory. - This allows tests to be run without installing first. - + Tests: Use real jpg (not empty) for docx tests to avoid warning. - - * LaTeX writer: - - + Fixed detection of 'chapters' from template. - If a documentclass isn't specified in metadata, but the - template has a hardwired bookish documentclass, act as if - `--chapters` was used. This was the default in earlier - versions, but it has been broken for a little while. - + Correctly recognize book documentclass in metadata (#2395). - + Set language-related variables automatically, depending - on the value of the `lang` field, which is now always - assumed to be in BCP47 format (Mauro Bieg, #1614, #2437). - + Add `\protect` to `\hyperdef` in inline context. This way we - don't get an error when this is used as a moveable argument (#2136). - + Support all frame attributes in Beamer. - + Percent-encode more special characters in URLs (#1640, #2377). - The special characters are '<','>','|','"','{','}','[',']','^', '`'. - - * HTML writer: - - + Update KaTeX JS and CSS versions (Emily Eisenberg). - + For dzslides, add `role="note"` for speaker notes (#1693). - + Percent-encode more special characters in URLs (#1640, #2377). - The special characters are '<','>','|','"','{','}','[',']','^', '`'. - + Render Div with class `section` as `<section>` in HTML5. - - * EPUB writer: - - + In TOC, replace literal `<br/>` with space (#2105). - + With `--webtex`, include image file rather than `data:` URI (#2363). - - * Native writer: format Div properly, with blocks separated. - - * Support bidirectional text output with XeLaTeX, ConTeXt and HTML - (#2191, Mauro Bieg). - - * Reference Docx: - - + Add missing Header 6 style (steel blue) (Ophir Lifshitz). - + Correct `outlineLvl` for Header styles (Ophir Lifshitz). - - * Templates - - + Beamer: Add `innertheme`, `outertheme` variables - (Guilhem Bonnefille, #121). Add space after colon in figure caption. - Integrate recent font and language updates from LaTeX template; - allow use of `mainfont` variable for changing the slide text - in XeTeX and LuaTeX (Andrew Dunning, #131). - + LaTeX: Add `mainfontoptions`, `sansfontoptions`, - `monofontoptions`, `mathfontoptions`, `fontfamilyoptions` - (Andrew Dunning, #122). Support handling of bidirectional - text (Mauro Bieg, #120). Improve reliability of superscripts/subscripts - under XeTeX and prevent letters and numbers from appearing on a - different baseline by removing use of the `realscripts` package - (via `xltxtra`). To restore use of OpenType characters for these - features under XeTeX or LuaTeX, add `\usepackage{realscripts}` to - `header-includes` (Andrew Dunning, #130). Remove redundant - reference to `xunicode` (Andrew Dunning, #130). Add `fontenc`, - `indent`, `subparagraph` variables (Andrew Dunning). - Allow use of `hidelinks` variable for `hyperref` package (Hugo Roy, - #113). Prevent package clash with `tufte-latex` and other classes that - include `hyperref` or `color` (Xavier Olive, #115). - + ConTeXt: Support handling of bidirectional text (Mauro Bieg, #120). - + LaTeX and ConTeXt: Use more specific language variables. - Instead of directly using `lang`, we now use `babel-lang` and - `polyglossia-lang` and `context-lang`. These variables are set by - the writers to the necessary values, based on the `lang` variable - (which now always takes a value in BCP47 format). (Mauro Bieg, #114, - #129). - + HTML: Support handling of bidirectional text (Mauro Bieg, #120). - Move HTML5 shiv after CSS and fix URL (Andrew Dunning). - Add dir attribute in html5 (Andrew Dunning). - + reveal.js: Add `controls`, `progress` variables (Grégoire Pineau, #127). - Add `width`, `height` variables (Andrew Dunning). Update template - from 3.1 source (Andrew Dunning). All configuration options are now - available as variables, but are only be included if set (reveal.js - uses defaults otherwise). - + man: Added comment stating that the page is autogenerated by pandoc, - giving version. Added `adjusting` and `hyphenate` variables - (Alex Vong, #123). - - * epub.css: added selectors for nested emphasis (Pablo Rodriguez). - - * MediaBag: ensure that `/` is always used as path separator. - - * `sample.lua`: define `CaptionedImage`, add newline at end (#2393). - - * Added `--bash-completion` option. This generates a bash completion - script. To use: `eval "$(pandoc --bash-completion)"`. - - * Text.Pandoc.Error: Define Typeable and Exception instances - for PandocError (#2386). - - * Text.Pandoc.Parsing: `toKey`: strip off outer brackets. - This makes keys with extra space at the beginning and end - work: e.g. - - [foo]: bar - - [ foo ] - - will now be a link to bar (it wasn't before). - - * Text.Pandoc: disable `auto_identifiers` for epub. - The epub writer inserts its own auto identifiers; - this is more complex due to splitting into "chapter" files. - - * Renamed Text.Pandoc.Compat.Locale -> Text.Pandoc.Compat.Time. - It now reexports Data.Time. - - * Use custom Prelude to avoid compiler warnings. - - + The (non-exported) prelude is in prelude/Prelude.hs. - + It exports Monoid and Applicative, like base 4.8 prelude, - but works with older base versions. - + It exports (<>) for mappend. - + It hides 'catch' on older base versions. - - * Added a `stack.ymal` and stack install instructions to INSTALL. - - * Clarified what is "out of scope" in README and CONTRIBUTING.md. - - * Added note to CONTRIBUTING.md about ghc versions and travis. - - * Clarify docs on block quotes. The space after `>` is optional (#2346). - - * Removed obsolete reference to default.csl (#2372). - - * List all styles in manual for `--reference-docx` (Chris Black) - - * Don't capitalize header links in man page. - - * Added section on repl to CONTRIBUTING.md. - - * README: Added space after backslash in image example (#2329). - - * Document details of citation locator terms (Nick Bart). - - * Fixed some internal links in README (#2309). - - * Improve CSL documentation, variables documentations, - links, and cross-references in README. (Andrew Dunning) - - * Fix build failure with `--flags=-https` (Sergei Trofimovich). - - * Use `newManager` instead of `withManager` in recent `http-client`. - This avoids a deprecation warning. - - * Allow building with latest versions of http-types, - HUnit, criterion, syb, aeson. - - * Updated benchmark program for new criterion API. - - * Setup.hs: rewrite so as not to use process, directory, filepath. - Using anything outside base is dangerous, since older - versions of ghc may link against two different versions. - - * Added appveyor (Windows continuous integration) builds. - - * New `.travis.yml`. Autgenerated using `make_travis_yml.hs`. - This script has been modified in a few ways, e.g. to add `GHCOPTS`. - `make .travis.yml` regenerates it based on the tested-with - field of the cabal file. - -pandoc (1.15.0.6) - - * `--self-contained`: Fixed overaggressive CSS minimization (#2301, 2286). - Previously `--self-contained` wiped out all spaces in CSS, - including semantically significant spaces. This was a regression - from 1.14.x. - - * Markdown reader: don't allow bare URI links or autolinks in link - label (#2300). Added test cases. - - * `Text.Pandoc.Parsing`, `uri`: Improved bare autolink detection (#2299). - Previously we disallowed `-` at the end of an autolink, - and disallowed the combination `=-`. This commit liberalizes the - rules for allowing punctuation in a bare URI, and adds test cases. - One potential drawback is that you can no longer put a bare - URI in em dashes like this: - `this uri---http://example.com---is an example.` - But in this respect we now match github's treatment of bare URIs. - - * HTML writer: support speaker notes in dzslides. - With this change `<div class="notes">` and also `<div class="notes" - role="note">` will be output if `-t dzslides` is used. So we can - have speaker notes in dzslides too. Thanks to maybegeek. - - * Updated dzslides template. - - * Improved documentation of options to print system default files (#2298). - `--print-default-data-file` and `--print-default-template`. - - * DokuWiki writer: use `$..$` for Math instead of `<math>..</math>` - (Tiziano Müller). MathJax seems currently to be the only maintained - math rendering extension for DokuWiki. - - * `Text.Pandoc.Shared`: Changed `hierarchicalize` so it treats references - div as top-level header (#2294). This fixes a bug with `--section-divs`, - where the final references section added by pandoc-citeproc, enclosed in - its own div, got nested in the div for the section previous to it. - - * Allow vector 0.11. - - * Require cmark > 0.4. - -pandoc (1.15.0.5) - - * HTML writer: Fixed email javascript obfuscation with `mailto:` - URLs (#2280). This fixes a potential security issue. Because - single quotes weren't being escaped in the link portion, a - specially crafted email address could allow javascript code injection. - - * Markdown/HTML readers: Avoid parsing partial URLs like - `<www.pandoc.org/blah#foo>` as HTML tags (#2277). - - * RST reader: allow inline formatting in definition list field - names (Lars-Dominik Braun). - - * PDF: Make sure `--latex-engine-opt` goes before the filename - on the command line. LaTeX needs the argument to come after - the options (#1779). - - * CommonMark writer: fixed tags used for super/subscript. - - * ConTeXt template: activate hanging indent for definition lists - (Mauro Bieg). - - * Make cabal require `hsb2hs` >= 0.3.1 if `embed_data_files` specified. - This is done by adding `hookedPrograms` in `Setup.hs`, which allows us - to include `hsb2hs` in Build-Tools in cabal. - - * Improved Windows installer (thanks to nkalvi). - - + When per-machine installation is chosen, the system path - is updated instead of the user's. - + An appropriate default is used for per-machine installation - directory. - + Admin privileges are no longer required for a per-user install - - * Travis: unpack sdist for build to catch packaging bugs. - - * Improved documentation on where user templates go (#2272). - -pandoc (1.15.0.4) - - * Added pandoc.1 man page to the repository. It is no longer - built as part of the cabal build process. (This proved too - fragile.) pandoc.1 can be regenerated (`make man/pandoc.1`) - when `README` is changed. - - * Copying of the man page now respects `--destdir` (#2262). - - * Improved error messages for filters. User is now informed if - the filter requires an interpreter that isn't found in the path, - or if the filter returns an error status. - -pandoc (1.15.0.3) - - * Ensure target directory is created when installing man page. - -pandoc (1.15.0.2) - - * Added files needed for building man page to Extra-Source-Files. - -pandoc (1.15.0.1) - - * Man page is now built and installed as part of the cabal build - process. Removed Makefile target for man page. - -pandoc (1.15) - - * Man page changes: - - + Removed `--man1`, `--man5` options (breaking change). - + Removed `Text.Pandoc.ManPages` module (breaking API change). - + Makefile target for `man/man1/pandoc.1`. This uses pandoc to - create the man page from README using a custom template and filters. - + Added `man/` directory with template and filters needed to build - man page. - + We no longer have two man pages: `pandoc.1` and `pandoc_markdown.5`. - Now there is just pandoc.1, which has all the content from README. - This change was needed because of the extensive cross-references - between parts of the README. - + Removed old `data/pandoc.1.template` and - `data/pandoc_markdown.5.template`. - - * OpenDocument writer: Do not add a carriage return after a hard - line break (Michael Chladek). - - * ConTeXt writer: - - + use `\goto` for internal links. - + Added a `%` at end for `\reference` to avoid spurious space. - - * Ignore sandbox on 'make quick' - -pandoc (1.14.1) - - * Added `--man1` and `--man5` options to pandoc, allowing pandoc - to generate its own man pages. Man pages are no longer automatically - generated in the build process (the process for this was too complex - and prone to failure, #2190). The `make-pandoc-man-pages` executable - has been removed. The `man/` directory has been removed, and man page - templates have been moved to `data/`. NOTE TO PACKAGERS: You will no - longer find pandoc's man pages in `man/`, but you can generate them using - `pandoc --man1 > pandoc.1` and `pandoc --man5 > pandoc_markdown.5`. - - * Added new unexported module: `Text.Pandoc.ManPages`. - - * `README` now acts like a data file (even though it isn't in - `data/`). So, for example, `pandoc --print-default-data-file README` - will produce the README.) This change was required for the `--man1` - and `--man5` options, since the man pages are produced from the - README, but it may be useful for other purposes as well. - - * Allow `reference.docx` and `reference.odt` to be used with - `--print-default-data-file` and to shadow defaults if placed in - the user data directory. Note that as of 1.14, we no longer - include these files as data files; instead, we include their - components. This change causes pandoc to behave as if it has - these data files; they are constructed on demand when needed - using `getDefaultReferenceDocx` and `getDefaultReferenceODT`. - - * Fixed regression in CSS parsing with `--self-contained` (#2224). - Pandoc 1.14.0.x used css-text to parse the CSS, but its parser - silently drops big sections of CSS. This commit replaces the - use of css-text with a small but principled CSS preprocessor, - which removes whitespace and comments and replaces `url()` with - base 64 data when possible. - - * Use `https://` instead of `//` for MathJax and KaTeX CDN URLs (#1920). - This will allow math to work when pages are being viewed locally. - - * `Text.Pandoc.Options`: Export `plainExtensions`. - These are the extensions used in `plain` output. - - * LaTeX reader: Don't parse `_` and `^` as sub/superscript outside of - math mode; treat them as regular inline text. Normally these will - cause an error in LaTeX, but there are contexts (e.g. `alltt` - environments) where they are allowed. - - * HTML reader: allow `<body>` to close `<head>`. - - * DocBook reader: support `mediaobject`s and `figures` (#2184, Mauro Bieg). - - * RST reader: Fix reference names with special characters - (Lars-Dominik Braun). - - * Textile writer: escape `+` and `-` as entities (#2225). - - * DokuWiki writer: Use proper `<code>` tags for code blocks (#2213). - - * Plain writer: don't use symbols for super/subscript (#2237). - Simplified code by using `plainExtensions`. - - * InDesign writer: Properly escape URLs containing more than one - colon character (gohai). - - * Docx writer: Make sure we use dist version of `reference.docx` - (and not the user's version) for certain settings. Taking some - settings values from a user-supplied reference.docx can lead to - corruption. This fixes a regression from the last release (#2249). - - * `Text.Pandoc.Shared`: exports `getDefaultReferenceDocx` and - `getDefaultReferenceODT` (API change). These functions have been - removed from the Docx and ODT writers. - - * LaTeX template (Xavier Olive): - + Added `CJKmainfont` and `CJKoptions` variables. - + Allow dvipsnames (e.g. `MidnightBlue`) for colors (Xavier Olive). - - * Epub templates: use `author.role`, not `author.type`. - - * Bump cmark version to >= 0.3.4. - - * Improved Windows installer (#2205, thanks to nkalvi). - Users can now select a per-user or systemwide install, and can set - the installation path. At the end of installation, the install location - is given. The install location is also now given in the list of - installed programs in Control Panel. Cleaner WiX syntax is used for - setting the path. - - * Added `download_stats` target to Makefile. - -pandoc (1.14.0.4) - - * Added missing commonmark template. - - * Improved try pandoc (moved button, show raw command). - -pandoc (1.14.0.3) - - * Allow compilation with syb 0.5.*. - - * Custom writer: fixed some compiler warnings for ghc < 7.10. - -pandoc (1.14.0.2) - - * Allow building with hslua 0.4. - -pandoc (1.14.0.1) - - * Fixed problem with building of `reference.docx` and `reference.odt` - when the `embed_data_files` flag is used. Instead of having a phase - of the build where `reference.docx` and `reference.odt` are created - from their constituent data files, we now construct these archives - from their constituents when a `docx` or `odt` is built. The - constituent files have been moved from `extra-source-files` to - `data-files`, and `reference.docx` and `reference.odt` have been - removed. Users can create their own `reference.docx` or - `reference.odt` by using pandoc to create a simple `docx` or `odt`. - `make-reference-files.hs` has been removed, simplifying the build - process (#2187) - - * Don't include generated man pages in extra-source-files (#2189). - - * Bumped upper bound for aeson. - - * ConTeXt writer: create internal link anchors for Div elements with - identifiers. (This is needed for linked citations to work.) - -pandoc (1.14) - - [new features] - - * Added `commonmark` as input and output format. - - * Added `--verbose` flag for debugging output in PDF production (#1840, - #1653). - - * Allow wildcards in `--epub-embed-font` arguments (#1939). - - * Added `--latex-engine-opt` option (#969, #1779, Sumit Sahrawat). - - * Added `shortcut_reference_links` extension (Konstantin Zudov, #1977). - This is enabled by default for those markdown flavors that - support reading shortcut reference links, namely: `markdown`, - `markdown_strict`, `markdown_github`, `markdown_php`. - If the extension is enabled, the reader parses shortcut reference - links like `[foo]`, and the writer creates such links unless doing - so would cause problems. Users of markdown flavors that support - shortcut reference links should not notice a difference in reading - markdown, but the markdown pandoc produces may differ. - If shortcut links are not desired, the extension can be disabled - in the normal way. - - [behavior changes] - - * `--toc` is now supported for `docx` output (#458, Nikolay Yakimov). - A "dirty" TOC is created at the beginning of document. - It can be regenerated after the document has been opened. - - * An implicit `--filter pandoc-citeproc` is now triggered only when the - `--bibliography` option is used, and not when the `bibliography` - field in metadata is specified (#1849). - - * Markdown reader: - - + Reference links with `implicit_header_references` are no longer - case-sensitive (#1606). - + Definition lists no longer require indentation for first line (#2087). - Previously the body of the definition (after the `:` or `~` marker) - needed to be in column 4. This commit relaxes that requirement, - to better match the behavior of PHP Markdown Extra. So, now - this is a valid definition list: - - foo - : bar - + Resolve a potentially ambiguity with table captions: - - foo - - : bar - - ----- - table - ----- - - Is "bar" a definition, or the caption for the table? We'll count - it as a caption for the table. - + Disallow headerless pipe tables (#1996), to conform to GFM and PHP - Markdown Extra. Note: If you have been using headerless pipe tables, - this change may cause existing tables to break. - + Allow pipe tables with header but no body (#2017). - + Allow a digit as first character of a citation key (Matthias Troffaes). - See https://github.com/jgm/pandoc-citeproc/issues/97 - - * LaTeX reader: - - + Don't limit includes to `.tex` extension (#1882). - If the extension is not `.tex`, it must be given explicitly in - the `\input` or `\include`. - - * Docx reader: - - + Allow numbering in the style file. This allows inherited styles - with numbering (lists) (Jesse Rosenthal). - - * Org reader: - - + Support smart punctuation (Craig Bosma). - + Drop trees with a :noexport: tag (Albert Krewinkel). Trees having a - `:noexport:` tag set are not exported. This mirrors org-mode. - + Put header tags into empty spans (Albert Krewinkel, #2160). - Org mode allows headers to be tagged: `* Headline :TAG1:TAG2`. - Instead of being interpreted as part of the headline, the tags are now - put into the attributes of empty spans. Spans without textual content - won't be visible by default, but they are detectable by filters. They - can also be styled using CSS when written as HTML. - + Generalize code block result parsing (Albert Krewinkel). - Previously, only code blocks were recognized as result blocks; - now, any kind of block can be the result. - - * Append newline to the LineBreak in Dokuwiki, HTML, EPUB, - LaTeX, MediaWiki, OpenDocument, Texinfo writers (#1924, Tim Lin). - - * HTML writer: - - + Add "inline" or "display" class to math spans (#1914). - This allows inline and display math to be styled differently. - + Include raw latex blocks if `--mathjax` specified (#1938). - + Require highlighting-kate >= 0.5.14 (#1903). - This ensures that all code blocks will be wrapped in a `div` - with class `sourceCode`. Also, the default highlighting CSS - now adds `div.sourceCode { x-overflow: auto; }`, which means - that code blocks (even with line numbers) will acquire a scroll - bar on screens too small to display them (e.g. mobile phones). - See also jgm/highlighting-kate#65. - - * LaTeX writer: - - + Use a declaration for tight lists (Jose Luis Duran, Joseph - Harriott). Previously, pandoc hard-coded some commands to make - tight lists in LaTeX. Now we use a custom command instead, - allowing the styling to be changed in a macro in the header. - (Note: existing templates may need to be modified to include - the definition of this macro. See the current template.) - + Beamer output: if the header introducing a slide has the - class `fragile`, add the `[fragile]` option to the slide (#2119). - - * MediaWiki writer: - - + Use `File:` instead of the deprecated `Image:` for images and - other media files (Greg Rundlett). - - * DocBook writer: - - + Render a `Div (id,_,_) [Para _]` element as a `para` element - with an `id` attribute. This makes links to citations work in - DocBook with pandoc-citeproc. - - * RST writer: - - + Normalize headings to sequential levels (Nikolay Yakimov). - This is pretty much required by docutils. - + Treat headings in block quotes, etc as rubrics (Nikolay Yakimov). - + Better handling of raw latex inline (#1961). We use - `` :raw-latex:`...` `` and add a definition for this role to - the template. - - * EPUB writer: - - + Remove `linear=no` from cover `itemref` (#1609). - + Don't use `sup` element for epub footnotes (#1995). - Instead, just use an a element with class `footnoteRef`. - This allows more styling options, and provides better results - in some readers (e.g. iBooks, where anything inside the a - tag breaks popup footnotes). - + Take TOC title from `toc-title` metadata field. - - * Docx writer: - - + Implemented `FirstParagraph` style (Jesse Rosenthal). - Following the ODT writer, we add the `FirstParagraph` style to the - first text paragraph following an image, blockquote, table, heading, - or beginning of document. This allows it to be styled differently. - The default is for it to be the same as `Normal`. - + Added `BodyText` style (Jesse Rosenthal). - We apply a `BodyText` style to all unstyled paragraphs. This is, - essentially, the same as `Normal`, except that since not everything - inherits from `BodyText` (the metadata won't, for example, or - the headers or footnote numbers), we can change the text in the body - without having to make exceptions for everything. If we do want to - change *everything*, we can still do it through `Normal`. - + Altered `Blockquote` style slightly (Jesse Rosenthal). - Since `BlockQuote` derives from `BodyText`, we just want to specify - by default that it won't indent, regardless of what `BodyText` does. - Note that this will not produce any visible difference in the default - configuration. - + Take TOC title from `toc-title` metadata field (Nikolay Yakimov). - + Added a style to figure images (Nikolay Yakimov). - Figures with empty captions use style `Figure`. - Figures with nonempty captions use style `Figure with Caption`, which - is based on `Figure`, and additionally has `keepNext` set. - - * ODT writer: - - + Added figure captions (Nikolay Yakimov). The following styles are - used for figures: - `Figure` -- for figure with empty caption), - `FigureWithCaption` (based on `Figure`) -- for figure with caption, - `FigureCaption` (based on `Caption`) -- for figure captions. - Also, `TableCaption` (based on `Caption`) is used for table captions. - - [API changes] - - * New `Text.Pandoc.Error` module with `PandocError` type - (Matthew Pickering). - - * All readers now return `Either PandocError Pandoc` instead of `Pandoc` - (Matthew Pickering). This allows better handling of errors. - - * Added `Text.Pandoc.Writers.CommonMark`, exporting `writeCommonMark`. - - * Added `Text.Pandoc.Readers.CommonMark`, exporting `readCommonMark`. - - * Derive `Data` and `Typeable` instances for `MediaBag`, `Extension`, - `ReaderOptions`, `EPUBVersion`, `CiteMethod`, `ObfuscationMethod`, - `HTMLSlideVariant`, `TrackChanges`, `WriterOptions` (Shabbaz - Youssefi). - - * New `Ext_shortcut_reference_links` constructor for `Extension` - (Konstantin Zudov). - - [bug fixes] - - * Markdown reader: - - + Allow smart `'` after inline math (#1909, Nikolay Yakimov). - + Check for tex macros after indented code (#1973). - + Rewrote `charsInBalancedBrackets` for efficiency. - + Make sure a closing `</div>` doesn't get included in a - definition list item (#2127). - + Don't parse bracketed text as citation if it might be a link, - image, or footnote (Nikolay Yakimov). - + Require space after key in mmd title block (#2026, Nikolay - Yakimov). Require space after key-value delimiter colon in mmd title - block. - + Require nonempty value in mmd title block (Nikolay Yakimov). - + Disable all metadata block extensions when parsing - metadata field values (#2026, Nikolay Yakimov). Otherwise we - could get a mmd title block inside YAML metadata, for example. - - * HTML reader: - - + Improve self-closing tag detection in `htmlInBalanced` (#2146). - + Handle tables with `<th>` in body rows (#1859, Mauro Bieg). - + Fixed `htmlTag` (#1820). If the tag parses as a comment, we check - to see if the input starts with `<!--`. If not, it's bogus comment - mode and we fail `htmlTag`. - + Handle `base` tag; if it has an `href` value, this is added to - all relative URLs in links and images. - - * DocBook reader: - - + Look inside "info" elements for section titles (#1931). - - * Docx reader: - - + Parse images in deprecated vml format (Jesse Rosenthal). - + Allow sub/superscript verbatims (Jesse Rosenthal). - Verbatim usually shuts off all other run styles, but we don't want it - to shut off sub/superscript. - - * LaTeX reader: - - + Handle `tabular*` environment (#1850). - Note that the table width is not actually parsed or taken into - account, but pandoc no longer chokes on it. - + Ignore options in `\lstinline` rather than raising error (#1997). - + Add some test cases for simple tables (Mathias Schenner). - + Handle valign argument in tables (Mathias Schenner) (currently - we just ignore this). - + Allow non-empty colsep in tables (Mathias Schenner). - The `tabular` environment allows non-empty column separators - with the "@{...}" syntax. Previously, pandoc would fail to - parse tables if a non-empty colsep was present. With this - commit, these separators are still ignored, but the table gets - parsed. A test case is included. - + Recognize `\newpage` as a block command. - + Allow block content in \title{} (#2001). - + Check for block-level newcommand aliases in blockCommand (Nikolay - Yakimov). - + Guard against paragraph starting with inline macro (Nikolay Yakimov). - + Properly gobble spaces after `\\` (#2007). - - * Textile reader: - - + Handle newlines in table cells, and empty cells (#1919). - - * Org reader: - - + Allow image links with non-image targets (Hans-Peter Deifel). - This matches behavior of Org-Mode for links like - `[[http://example.com][https://www.haskell.org/static/img/logo.png]]`. - - * Docbook writer: - - + Don't print empty id attributes (thanks to Steve Horne). - - * HTML writer: - - + Fixed list-style-type for numbered example lists. - Should be "decimal," not "example" (#1902). - + Do not omit missing `alt` attribute on `img` tag (#1131, - Konstantin Zudov). - + Allow multiple colgroups in table (#2122). - + In revealjs, ensure that lists in speaker notes don't add "fragment" - classes, which can cause additional keypresses to be needed to - advance a slide (#1394). - - * LaTeX writer: - - + Don't escape `$` in URL (#1913). - + Don't use listings in headers (Matthew Pickering, #1963). - + Recognize book documentclass if set in metadata (#1971). - This sets `--chapters` implicitly if the documentclass in metadata - is a book documentclass. Previously this was done only if a book - documentclass was set in a variable. - + Add a `\label` in `\hyperdef` for Div, Span (or links don't work). - + Make `mainlang` work when `lang` is in metadata (#2174). - - * Texinfo writer: - - + Fix wrapping by using breakable spaces (Tim Lin). - - * RST writer: - - + Fixed toc depth in RST writer. Previously the depth was being - rendered as a floating point number with a decimal point. - - * Markdown writer: - - + Improved escaping (#2086). `<` should not be escaped as `\<`, for - compatibility with original Markdown. We now escape `<` and `>` - with entities. Also, we now backslash-escape square brackets. - + Avoid introducing spurious list items through wrapping (#1946). - + Don't emit span tags if plain or raw HTML disabled. - - * MediaWiki writer: - - + Convert spaces to underscores in wikilink URL (#1982), like MediaWiki. - - * AsciiDoc writer: - - + Insert some needed blank lines (#1860). - + Avoid wrapping after list marker (#1858). - - * EPUB writer: - - + Properly handle internal links to IDs in spans, divs (#1884). - + Use plain writer for metadata dc: fields (#2121). - This gives better results when we have, e.g. multiple paragraphs. - Note that tags aren't allowed in these fields. - + Properly handle image links without an extension (#1855). - + Improved chapter splitting and internal link rewriting (#1887, - #2162, #2163). This will ensure that internal links work and - that the references section produced by pandoc-citeproc is - in its own chapter. - + Fixed handling of svg images (#2183). - - * ICML writer: - - + Better handling of raw blocks and inlines (#1951). - Previously these were always escaped and printed verbatim. - Now they are ignored unless the format is `icml`, in which - case they are passed through unescaped. - + Fixed image URIs in ICML output (gohai). - - * Custom writer: - - + Raise error if loadstring returns an error status. - + Raise `PandocLuaException` instead of using 'error'. - Eventually we'll change the return type so that no exception - is involved, but at least this can be trapped. - + Use UTF-8 aware bytestring conversion. - + Set foreign encoding to UTF-8 (Nikolay Yakimov, #2101, #1634). - Also factored out ByteString, since it's only used as an intermediate - representation. - - * Docx writer: - - + Copy hyphenation settings from reference.docx (Nikolay Yakimov). - + Filter out illegal XML characters (#1992, Matthew Pickering). - + Added `noProof` to docx syntax highlighting `SourceCode` style. - + Added footnotes id -1 and 0 (Jesse Rosenthal). - Word uses, by default, footnotes with id -1 and 0 for separators. If a - user modifies `reference.docx`, they will end up with a `settings.xml` - file that references these footnotes, but no such footnotes in the - document. This will produce a corruption error. Here we add these to the - document and `settings.xml` file, so future modifications won't break - the file. - + Handle lists correctly inside table cells (Jesse Rosenthal). - Previously we didn't transform lists inside table cells. - + Set firstRow information in tables (Nikolay Yakimov). - + Don't replace `SourceCode` style in `reference.docx` if it is defined - there (Nikolay Yakimov, #1872). If `--no-highlight` specified, remove - any `SourceCode` and `*Tok` styles in `reference.docx`. - + Attempt to match international style names (#1607, Nikolay Yakimov). - + Set these styles as custom (Nikolay Yakimov): `Author`, `Abstract`, - `Compact`, `Image Caption`, `Table Caption`, `Definition Term`, - `Definition`, `First Paragraph`. - + Rename these styles to correspond with Word `Normal.dotm` (Nikolay - Yakimov): `Block Quote -> Block Text`, `Link -> Hyperlink`, - `Footnote Ref -> Footnote Reference`. - + Added `Caption` style (Nikolay Yakimov). - + Changed these styles' inheritance (Nikolay Yakimov): - `Image Caption <- Caption`, `Table Caption <- Caption`. - + Remove `SourceCode` style from `reference.docx` (#1872). - This is added automatically by the docx writer. - + Added toc heading style to `reference.docx` (Nikolay Yakimov). - - * `Text.Pandoc.PDF` - - + Don't suggest "Try xelatex" if xelatex already in use (Mauro Bieg, - #1832). - + More comprehensible errors on image conversion (#2067). - EPS can't be supported without shelling out to something like - ImageMagick, but at least we can avoid mysterious error messages. - - * `Text.Pandoc.Shared`: - - + Make safeRead safe (#1801, Matthew Pickering). - + Added `mapLeft`, `hush` (Matthew Pickering). - - * `Text.Pandoc.Pretty`: - - + Remove partial function (Matthew Pickering). - - * `Text.Pandoc.SelfContained`: - - + Add `;charset=utf-8` to script mime type if missing (#1842). - + Improved building of data URIs (#1940). Now base64 is used except - for `text/*` mime types. - + `cssURLs` no longer tries to fetch fragment URLs (#2121). - + Properly handle data URIs in css urls (#2129). - Use a proper CSS parser (adds dependency on `text-css`). - - * `Text.Pandoc.UTF8`: - - + Better handling of bare CRs in input files (#2132). - Previously we just stripped them out; now we convert - other line ending styles to LF line endings. - - * `Text.Pandoc.ImageSize`: - - + Fixed some exif header parsing bugs (#1834). - + Make imageSize return an Either, not a Maybe (#1834). - Use `runGetOrFail` (with `binary >= 0.7`) to return `Left` on - parse failure (rather than `error`). - + Improved warnings when image size can't be determined. - + Removed error landmines (Matthew Pickering). - - * Added woff2 to MIME types (Alfred Wechselberger). - - * pandoc: When a binary input format is used, warn that file - arguments past the first one are being ignored (Matthew Pickering). - - [template changes] - - * LaTeX template: - - + Degrade gracefully if `\paragraph` not defined. - + Include `grffile` together with `graphicx` (#2074). - This properly handles filenames containing spaces and dots. - + Redefine `\paragraph`, `\subparagraph`... to behave more - like section headers (#1658). - + Import hyperref before polyglossia to avoid an error with xelatex, - "please load package hyperref before bidi package" (Nick Bart). - + Added `toccolor` variable to control link color in toc (Kaixhin). - - * LaTeX, Beamer templates: - - + Provide `\tightlist`, which is now used by the LaTeX writer. - + Use polyglossia in beamer (#85). - + Use `bibliography` instead of `biblio-files` - (#1661). Also use `\addbibresource` instead of `\bibliography` for - biblatex. - + Added `setotherlanguages` in polyglossia. This uses an `otherlang` - variable that is derived from a comma-separated list in `lang`; - the last language is `mainlang` and the others are `otherlang`. - - * EPUB templates: - - + Use `div`, not `p`, for "rights" on title page. - + Added header-includes, include-before, include-after (#1987). - - * OpenDocument template: - - + Use `text:p` instead of `text:h` for title. - Using `text:h` causes problems with numbering. Closes #2059. - Thanks to @nkalvi for diagnosing this. - - * reveal.js template: - - + Link to non-minified css, js. The minified versions no longer - ship with the library. - + Correctly include style CSS (#1949). - + New configurable options options: `center`, `maxScale`, `slideNuber` - (Dmitry Smirnov, pandoc-templates#89). - + Moved custom CSS after theme. This allows custom CSS to modify - themes, instead of being replaced by them. - + Allow `center` to be set to false. - - [under the hood improvements] - - * Removed pre-built `reference.docx` and `reference.odt` (Nikolay - Yakimov). Instead the repository now includes the component text files, - and the zipped binaries are built from these using a helper - program, `make-reference-files`. This should make maintenance of - these components easier going forward. - - * `Text.Pandoc.Parsing`: - - + Added new `<+?>` combinator (Nikolay Yakimov). - + Added `stateHeaderKeys` to `ParserState`. - - * `make_deb.sh` fixes: - - + Detect architecture. - + Add Installed-Size to debian package control file (#1900). - + Use `fakeroot` to get permissions right. - + Use `mkdir` and `cp` instead of `install`. - + Set permissions of directories to 755. - + Install in `/usr` rather than `/usr/local`. - + Compress man pages. - + Combine copyright files for `pandoc`, `pandoc-citeproc`. - - * Added `Text.Pandoc.Compat.Locale` and `old-locale` flag - to assist with transition to `time` 1.5. - - * Updated CONTRIBUTING.md with information about issue tags (Matthew - Pickering). - - * Updated travis installs to the new sudo-less syntax (Tim Lin). - - * Updated dependency version bounds. - - * EPUB tests: don't use `joinPath`, which varies across platforms. - Instead, use a forward-slash to join paths, regardless of the - platform. This matches the way `MediaBag` now works. - - * Clarify JSON input and output in usage message (Caleb McDaniel). - - * Improved INSTALL instructions. - - * Always build man pages. Removed make-pandoc-man-pages flag. - - * Makefile: removed man target, now that we generate man pages by default. - - * README: - - + Fixed typos (J. Lewis Muir). - + Added documentation on backtick_code_blocks (#2135, Nikolay Yakimov). - + Added note on in-field markup in biblio databases (Nick Bart). - + Fixed misleading example of raw HTML block. - + Various minor formatting and consistency fixes for the program - options (Andreas Lööw). - + Made definition lists for options all "loose" for consistency. - + Added YAML biblio format to table, and note on `pandoc-citeproc`'s - `--bib2json` and `--bib2yaml` options (Nick Bart). - + Removed obsolete reference to `mods2yaml` (Nick Bart). - + Added section on syntax highlighting. - + Documented `toccolor` variable. - -pandoc (1.13.2.1) - - * Updated to build with ghc 7.10.1. - - * Bumped package upper bounds for filepath, blaze-html, - blaze-markup. - -pandoc (1.13.2) - - * TWiki Reader: add new twiki reader (API change, Alexander Sulfrian). - - * Markdown reader: - - + Better handling of paragraph in div (#1591). - Previously text that ended a div would be parsed as Plain - unless there was a blank line before the closing div tag. - + Don't treat a citation as a reference link label (#1763). - + Fix autolinks with following punctuation (#1811). - The price of this is that autolinked bare URIs can no longer - contain `>` characters, but this is not a big issue. - + Fix `Ext_lists_without_preceding_blankline` bug (#1636, Artyom). - + Allow `startnum` to work without `fancy_lists`. Formerly - `pandoc -f markdown-fancy_lists+startnum` did not work properly. - - * RST reader (all Daniel Bergey): - - + Parse quoted literal blocks (#65). RST quoted literal blocks are - the same as indented literal blocks (which pandoc already supports) - except that the quote character is preserved in each line. - + Parse RST class directives. The class directive accepts one or more - class names, and creates a Div value with those classes. If the - directive has an indented body, the body is parsed as the children of - the Div. If not, the first block following the directive is made a - child of the Div. This differs from the behavior of rst2xml, which - does not create a Div element. Instead, the specified classes are - applied to each child of the directive. However, most Pandoc Block - constructors to not take an Attr argument, so we can't duplicate this - behavior. - + Warn about skipped directives. - + Literal role now produces Code. Code role should have "code" class. - + Improved support for custom roles - - - Added `sourceCode` to classes for `:code:` role, and anything - inheriting from it. - - Add the name of the custom role to classes if the Inline - constructor supports Attr. - - If the custom role directive does not specify a parent role, - inherit from the `:span:` role. - - This differs somewhat from the `rst2xml.py` behavior. If a custom - role inherits from another custom role, Pandoc will attach both - roles' names as classes. `rst2xml.py` will only use the class of - the directly invoked role (though in the case of inheriting from a - `:code:` role with a `:language:` defined, it will also provide the - inherited language as a class). - + Warn about ignored fields in role directives. - - * LaTeX reader: - - + Parse label after caption into a span instead of - inserting an additional paragraph of bracketed text (#1747). - + Parse math environments as inline when possible (#1821). - + Better handling of `\noindent` and `\greektext` (#1783). - + Handle `\texorpdfstring` more gracefully. - + Handle `\cref` and `\sep` (Wikiwide). - + Support `\smartcite` and `\Smartcite` from biblatex. - - * HTML reader: - - + Retain display type of MathML output (#1719, Matthew Pickering). - + Recognise `<br>` tags inside `<pre>` blocks (#1620, Matthew Pickering). - + Make `embed` tag either block or inline (#1756). - - * DocBook reader: - - + Handle `keycombo`, `keycap` (#1815). - + Get string content in inner tags for literal elements (#1816). - + Handle `menuchoice` elements better, with a `>` between (#1817). - + Include `id` on section headers (#1818). - + Document/test "type" as implemented (Brian O'Sullivan). - + Add support for calloutlist and callout (Brian O'Sullivan). - We treat a calloutlist as a bulleted list. This works well in practice. - + Add support for `classname` (Bryan O'Sullivan). - - * Docx reader: - - + Fix window path for image lookup (Jesse Rosenthal). - Don't use os-sensitive "combine", since we always want the paths in our - zip-archive to use forward-slashes. - + Single-item headers in ordered lists are headers (Jesse Rosenthal). - When users number their headers, Word understands that as a single item - enumerated list. We make the assumption that such a list is, in fact, - a header. - + Rewrite rewriteLink to work with new headers (Jesse Rosenthal). - There could be new top-level headers after making lists, so we have to - rewrite links after that. - + Use polyglot header list (Jesse Rosenthal). - We're just keeping a list of header formats that different languages - use as their default styles. At the moment, we have English, German, - Danish, and French. We can continue to add to this. - This is simpler than parsing the styles file, and perhaps less - error-prone, since there seems to be some variations, even within a - language, of how a style file will define headers. - + Remove header class properly in other langs (Jesse Rosenthal). - When we encounter one of the polyglot header styles, we want to remove - that from the par styles after we convert to a header. To do that, we - have to keep track of the style name, and remove it appropriately. - + Account for external link URLs with anchors. Previously, if a URL - had an anchor, the reader would incorrectly identify it as an - internal link and return only the anchor as URL. (Caleb McDaniel) - + Fix for Issue #1692 (i18n styles) (Nikolay Yakimov). - - * Org reader: - - + Added state changing blanklines (Jesse Rosenthal). - This allows us to emphasize at the beginning of a new paragraph (or, in - general, after blank lines). - + Fixed bug with bulleted lists: - - - a - - b - * c - - was being parsed as a list, even though an unindented `*` - should make a heading. See - <http://orgmode.org/manual/Plain-lists.html#fn-1>. - + Org reader: absolute, relative paths in link (#1741, Albert - Krewinkel). The org reader was too restrictive when parsing links; - some relative links and links to files given as absolute paths - were not recognized correctly. - + Org reader: allow empty links (jgm/gitit#471, Albert Krewinkel). - This is important for use in gitit, which uses empty links - for wikilinks. - + Respect indent when parsing Org bullet lists (#1650, Timothy - Humphries). Fixes issue with top-level bullet list parsing. - + Fix indent issue for definition lists (Timothy Humphries, - see #1650, #1698, #1680). - + Parse multi-inline terms correctly in definition list (#1649, - Matthew Pickering). - + Fix rules for emphasis recognition (Albert Krewinkel). - Things like `/hello,/` or `/hi'/` were falsy recognized as emphasised - strings. This is wrong, as `,` and `'` are forbidden border chars and - may not occur on the inner border of emphasized text. - + Drop COMMENT document trees (Albert Krewinkel). - Document trees under a header starting with the word `COMMENT` are - comment trees and should not be exported. Those trees are dropped - silently (#1678). - + Properly handle links to `file:target` (Albert Krewinkel). - Org links like `[[file:target][title]]` were not handled correctly, - parsing the link target verbatim. The org reader is changed such that - the leading `file:` is dropped from the link target (see #756, #1812). - + Parse LaTeX-style MathML entities (#1657, Albert Krewinkel). - Org supports special symbols which can be included using LaTeX syntax, - but are actually MathML entities. Examples for this are - `\nbsp` (non-breaking space), `\Aacute` (the letter A with accent acute) - or `\copy` (the copyright sign ©) - - * EPUB reader: - - + URI handling improvements. Now we outsource most of the work to - `fetchItem'`. Also, do not include queries in file extensions (#1671). - - * LaTeX writer: - - + Use `\texorpdfstring` for section captions when needed (Vaclav Zeman). - + Handle consecutive linebreaks (#1733). - + Protect graphics in headers (Jesse Rosenthal). - Graphics in `\section`/`\subsection` etc titles need to be `\protect`ed. - + Put `~` before header in list item text (Jesse Rosenthal). - Because of the built-in line skip, LaTeX can't handle a section header - as the first element in a list item. - + Avoid using reserved characters as `\lstinline` delimiters (#1595). - + Better handling of display math in simple tables (#1754). - We convert display math to inline math in simple tables, - since LaTeX can't deal with display math in simple tables. - + Escape spaces in code (#1694, Bjorn Buckwalter). - - * MediaWiki writer: - - + Fixed links with URL = text. Previously these were rendered as bare - words, even if the URL was not an absolute URL (#1825). - - * ICML writer: - - + Don't force all citations into footnotes. - - * RTF writer: - - + Add blankline at end of output (#1732, Matthew Pickering). - - * RST writer: - - + Ensure blank line after figure. - + Avoid exces whitespace after last list item (#1777). - + Wrap line blocks with spaces before continuations (#1656). - + Fixed double-rendering of footnotes in RST tables (#1769). - - * DokuWiki writer: - - + Better handling of block quotes. This change ensures that - multiple paragraph blockquotes are rendered using native `>` - rather than as HTML (#1738). - + Fix external images (#1739). Preface relative links with ":", - absolute URIs without. (Timothy Humphries) - - * HTML writer: - - + Use protocol-relative URL for mathjax. - + Put newline btw img and caption paragraph. - + MathML now outputted with tex annotation (#1635, Matthew Pickering). - + Add support for KaTeX HTML math (#1626, Matthew Pickering). - This adds `KaTeX` to `HTMLMathMethod` (API change). - + Don't double render when `email-obfuscation=none` (#1625, Matthew - Pickering). - + Make header attributes work outside top level (#1711). - Previously they only appeared on top level header elements. - Now they work e.g. in blockquotes. - - * ODT writer: - - + Correctly handle images without extensions (#1729). - + Strip querystring in ODT write (#1682, Todd Sifleet). - - * FB2 writer: - - + Add newline to output. - - * EPUB writer: - - + Don't add `sourceURL` to absolute URIs (#1669). - + Don't use unsupported `opf:title-type` for epub2. - + Include "landmarks" section in nav document for epub3 (#1757). - + Removed playOrder from navpoint elements in ncx file (#1760). - These aren't required, and they make manual modification of epubs - difficult. - + Extract title even from structured title. - + Don't include nav node in spine unless `--toc` was requested. - Previously we included it in the spine with `linear="no"`, leading - to odd results in some readers (#1593). - + Fixed absolute URI detection (#1672). - + Correctly resolve relative URIs (#1671). - + Use regular page template for `nav.xhtml`, including doctype (#1759). - - * Docx writer: - - + Put docx table captions above tables (#1641, Nikolay Yakimov). - + Get the page width from the reference docx file, and use - it to scale images that are too large to fit (Grégory Bataille). - + Partial fix for #1607 (Nikolay Yakimov). International heading styles - are inferred based on `<w:name val="heading #">` fallback, if there - are no en-US "Heading#" styles - + Look in user data dir for archive `reference.docx`. - + Renumber header and footer relationships to avoid collisions (Jesse - Rosenthal). We previously took the old relationship names of the - headers and footer in secptr. That led to collisions. We now make - a map of availabl names in the relationships file, and then rename - in secptr. - - * ConTeXt writer: - - + Add function toLabel (Mark Szepieniec). - This function can be used to sanitize reference labels so that - they do not contain any of the illegal characters \#[]",{}%()|= . - Currently only Links have their labels sanitized, because they - are the only Elements that use passed labels. - - * `Text.Pandoc.Shared`: - - + Moved import of `toChunks` outside of CPP conditional (#1590). - + Fix `inDirectory` to reset to the original directory in case - an exception occurs (Freiric Barral). - - * Templates: - - + LaTeX template: load polyglossia before bibtex (jgm/pandoc-templates#70). - Thanks to bluebirch. - + LaTeX template: Added `\VerbatimFootnotes` if there is verbatim in notes - (#1616). - + LaTeX template: Add shorthands=off to babel options (#1648). - + EPUB, EPUB3 templates: Added `id="cover"` to body of cover page. - This aids styling, making it possible for example to set 0 margins - on the title page (#1758). - + EPUB, EPUB3 templates: Handle structured metadata on titlepage. - Previously we just expected 'title', 'subtitle', 'author', 'date'. - Now we still support those, but also support the format recommended - for epub metadata in the pandoc README: - - --- - title: - - type: main - text: My Book - - type: subtitle - text: An investigation of metadata - creator: - - role: author - text: John Smith - - role: editor - text: Sarah Jones - identifier: - - scheme: DOI - text: doi:10.234234.234/33 - publisher: My Press - rights: (c) 2007 John Smith, CC BY-NC - ... - - * `Text.Pandoc.Templates.getDefaultTemplate`: - don't fail when called with "fb2" (#1660). - - * `Text.Pandoc.Parsing`: - - + Fixed `inlineMath` so it handles `\text{..}` containing `$`. - For example: `$x = \text{the $n$th root of $y$}` (#1677). - + Change `parseFromString` to fail if not all input is consumed. - (Matthew Pickering) - + Moved `addWarning` from Markdown reader to `Parsing`, so it can be - used by more readers (API change, Daniel Bergey). - - * `Text.Pandoc.Pretty`: - - + Improve performance of `realLength` (Matthew Pickering). - + Make CR + BLANKLINE = BLANKLINE. This fixes an extra blank line we - were getting at the end of markdown fragments (as well as rst, org, - etc.) (#1705). - - * `Text.Pandoc.MIME`: - - + Add mime type for WebVTT (Jason Ronallo). - + Changed mime type for `otf` to `application/vnd.ms-opentype` (#1761). - This is needed for epub3 validation. - - * `Text.Pandoc.MediaBag`: - - + Fix Windows specific path problems (#1597). - - * `Text.Pandoc.Shared`: - - + Make `collapseFilePath` OS-agnostic (Matthew Pickering). - - * Link the test suite using `-threaded`. - This allows the test suite to be run using `+RTS -N`. - - * Added `network` dependency under `network-uri` flag in test section. - - * Give better error messages when someone tries to convert from - pdf, doc, odt (#1683). - - * Added `track` to list of tags treated by `--self-contained` (#1664). - -pandoc (1.13.1) - - * Fixed `--self-contained` with Windows paths (#1558). - Previously `C:\foo.js` was being wrongly interpreted as a URI. - - * HTML reader: improved handling of tags that can be block or inline. - Previously a section like this would be enclosed in a paragraph, - with RawInline for the video tags (since video is a tag that can - be either block or inline): - - <video controls="controls"> - <source src="../videos/test.mp4" type="video/mp4" /> - <source src="../videos/test.webm" type="video/webm" /> - <p> - The videos can not be played back on your system.<br/> - Try viewing on Youtube (requires Internet connection): - <a href="http://youtu.be/etE5urBps_w">Relative Velocity on - Youtube</a>. - </p> - </video> - - This change will cause the video and source tags to be parsed - as RawBlock instead, giving better output. - The general change is this: when we're parsing a "plain" sequence - of inlines, we don't parse anything that COULD be a block-level tag. - - * Docx reader: - - + Be sensitive to user styles. Note that "Hyperlink" is - "blacklisted," as we don't want the default underline styling to be - inherited by all links by default (Jesse Rosenthal). - + Read single paragraph in table cell as `Plain` (Jesse Rosenthal). - This makes to docx reader's native output fit with the way the markdown - reader understands its markdown output. - - * Textile writer: Extended the range of cases where native textile - tables will be used (as opposed to raw HTML): we now handle any - alignment type, but only for simple tables with no captions. - - * Txt2Tags reader: - - + Header is now parsed only if standalone flag is set (Matthew Pickering). - + The header is now parsed as meta information. The first line is the - `title`, the second is the `author` and third line is the `date` - (Matthew Pickering). - + Corrected formatting of `%%mtime` macro (Matthew Pickering). - + Fixed crash when reading from stdin. - - * EPUB writer: Don't use page-progression-direction in EPUB2, which - doesn't support it. Also, if page-progression-direction not specified - in metadata, don't include the attribute even in EPUB3; not including it - is the same as including it with the value "default", as we did before. - (#1550) - - * Org writer: Accept example lines with indentation at the beginning - (Calvin Beck). - - * DokuWiki writer: - - + Refactor to use Reader monad (Matthew Pickering). - + Avoid using raw HTML in table cells; instead, use `\\` - instead of newlines (Jesse Rosenthal). - + Properly handle HTML table cell alignments, and use spacing - to make the tables look prettier (#1566). - - * Docx writer: - - + Bibliography entries get `Bibliography` style (#1559). - + Implement change tracking (Jesse Rosenthal). - - * LaTeX writer: - - + Fixed a bug that caused a table caption to repeat across all pages - (Jose Luis Duran). - + Improved vertical spacing in tables and made it customizable using - standard lengths set by booktab. See - <https://groups.google.com/forum/#!msg/pandoc-discuss/qMu6_5lYy0o/ZAU7lzAIKw0J> - (Jose Luis Duran). - + Added `\strut` to fix spacing in multiline tables (Jose Luis Duran). - + Use `\tabularnewline` instead of `\\` in table cells (Jose Luis Duran). - + Made horizontal rules more flexible (Jose Luis Duran). - - * Text.Pandoc.MIME: - - + Added `MimeType` (type synonym for `String`) and `getMimeTypeDef`. - Code cleanups (Artyom Kazak). - - * Templates: - - + LaTeX template: disable microtype protrusion for typewriter font (#1549, - thanks lemzwerg). - - * Improved OSX build procedure. - - * Added `network-uri` flag, to deal with split of `network-uri` from - `network`. - - * Fix build dependencies for the `trypandoc` flag, so that they are - ignored if `trypandoc` flag is set to False (Gabor Pali). - - * Updated README to remove outdated claim that `--self-contained` - looks in the user data directory for missing files. - -pandoc (1.13.0.1) - - * Docx writer: - - + Fixed regression which bungled list numbering (#1544), causing - all lists to appear as basic ordered lists. - + Include row width in table rows (Christoffer Ackelman, Viktor Kronvall). - Added a property to all table rows where the sum of column widths - is specified in pct (fraction of 5000). This helps persuade Word - to lay out the table with the widths we specify. - - * Fixed a bug in Windows 8 which caused pandoc not to find the - `pandoc-citeproc` filter (#1542). - - * Docx reader: miscellaneous under-the-hood improvements (Jesse Rosenthal). - Most significantly, the reader now uses Builder, leading to some - performance improvements. - - * HTML reader: Parse appropriately styled span as SmallCaps. - - * Markdown writer: don't escape `$`, `^`, `~` when `tex_math_dollars`, - `superscript`, and `subscript` extensions, respectively, are - deactivated (#1127). - - * Added `trypandoc` flag to build CGI executable used in the online - demo. - - * Makefile: Added 'quick', 'osxpkg' targets. - - * Updated README in templates to indicate templates license. - The templates are dual-licensed, BSD3 and GPL2+. - -pandoc (1.13) - - [new features] - - * Added `docx` as an input format (Jesse Rosenthal). The docx - reader includes conversion of native Word equations to pandoc - LaTeX `Math` elements. Metadata is taken from paragraphs at the - beginning of the document with styles `Author`, `Title`, `Subtitle`, - `Date`, and `Abstract`. - - * Added `epub` as an input format (Matthew Pickering). The epub - reader includes conversion of MathML to pandoc LaTeX `Math` - elements. - - * Added `t2t` (Txt2Tags) as an input format (Matthew Pickering). - Txt2tags is a lightweight markup format described at - <http://txt2tags.org/>. - - * Added `dokuwiki` as an output format (Clare Macrae). - - * Added `haddock` as an output format. - - * Added `--extract-media` option to extract media contained in a zip - container (docx or epub) while adjusting image paths to point to the - extracted images. - - * Added a new markdown extension, `compact_definition_lists`, that - restores the syntax for definition lists of pandoc 1.12.x, allowing - tight definition lists with no blank space between items, and - disallowing lazy wrapping. (See below under behavior changes.) - - * Added an extension `epub_html_exts` for parsing HTML in EPUBs. - - * Added extensions `native_spans` and `native_divs` to activate - parsing of material in HTML span or div tags as Pandoc Span - inlines or Div blocks. - - * `--trace` now works with the Markdown, HTML, Haddock, EPUB, - Textile, and MediaWiki readers. This is an option intended - for debugging parsing problems; ordinary users should not need - to use it. - - [behavior changes] - - * Changed behavior of the `markdown_attribute` extension, to bring - it in line with PHP markdown extra and multimarkdown. Setting - `markdown="1"` on an outer tag affects all contained tags, - recursively, until it is reversed with `markdown="0"` (#1378). - - * Revised markdown definition list syntax (#1429). Both the reader - and writer are affected. This change brings pandoc's definition list - syntax into alignment with that used in PHP markdown extra and - multimarkdown (with the exception that pandoc is more flexible about - the definition markers, allowing tildes as well as colons). Lazily - wrapped definitions are now allowed. Blank space is required - between list items. The space before a definition is used to determine - whether it is a paragraph or a "plain" element. **WARNING: This change - may break existing documents!** Either check your documents for - definition lists without blank space between items, or use - `markdown+compact_definition_lists` for the old behavior. - - * `.numberLines` now works in fenced code blocks even if no language - is given (#1287, jgm/highlighting-kate#40). - - * Improvements to `--filter`: - - + Don't search PATH for a filter with an explicit path. - This fixed a bug wherein `--filter ./caps.py` would run `caps.py` from - the system path, even if there was a `caps.py` in the working directory. - + Respect shebang if filter is executable (#1389). - + Don't print misleading error message. - Previously pandoc would say that a filter was not found, - even in a case where the filter had a syntax error. - - * HTML reader: - - + Parse `div` and `span` elements even without `--parse-raw`, - provided `native_divs` and `native_spans` extensions are set. - Motivation: these now generate native pandoc Div and Span - elements, not raw HTML. - + Parse EPUB-specific elements if the `epub_html_exts` - extension is enabled. These include `switch`, `footnote`, - `rearnote`, `noteref`. - - * Org reader: - - + Support for inline LaTeX. Inline LaTeX is now accepted and parsed by the - org-mode reader. Both math symbols (like `\tau`) and LaTeX commands (like - `\cite{Coffee}`), can be used without any further escaping (Albert - Krewinkel). - - * Textile reader and writer: - - + The `raw_tex` extension is no longer set by default. You can - enable it with `textile+raw_tex`. - - * DocBook reader: - - + Support `equation`, `informalequation`, `inlineequation` elements with - `mml:math` content. This is converted into LaTeX and put into a Pandoc - Math inline. - - * Revised `plain` output, largely following the style of Project - Gutenberg: - - + Emphasis is rendered with `_underscores_`, strong emphasis - with ALL CAPS. - + Headings are rendered differently, with space to set them off, - not with setext style underlines. Level 1 headers are ALL CAPS. - + Math is rendered using unicode when possible, but without the - distracting emphasis markers around variables. - + Footnotes use a regular `[n]` style. - - * Markdown writer: - - + Horizontal rules are now a line across the whole page. - + Prettier pipe tables. Columns are now aligned (#1323). - + Respect the `raw_html` extension. `pandoc -t markdown-raw_html` - no longer emits any raw HTML, including span and div tags - generated by Span and Div elements. - + Use span with style for `SmallCaps` (#1360). - - * HTML writer: - - + Autolinks now have class `uri`, and email autolinks have class - `email`, so they can be styled. - - * Docx writer: - - + Document formatting is carried over from `reference.docx`. - This includes margins, page size, page orientation, header, - and footer, including images in headers and footers. - + Include abstract (if present) with `Abstract` style (#1451). - + Include subtitle (if present) with `Subtitle` style, rather - than tacking it on to the title (#1451). - - * Org writer: - - + Write empty span elements with an id attribute as org anchors. - For example `Span ("uid",[],[]) []` becomes `<<uid>>`. - - * LaTeX writer: - - + Put table captions above tables, to match the conventional - standard. (Previously they appeared below tables.) - + Use `\(..\)` instead of `$..$` for inline math (#1464). - + Use `\nolinkurl` in email autolinks. This allows them to be styled - using `\urlstyle{tt}`. Thanks to Ulrike Fischer for the solution. - + Use `\textquotesingle` for `'` in inline code. Otherwise we get - curly quotes in the PDF output (#1364). - + Use `\footnote<.>{..}` for notes in beamer, so that footnotes - do not appear before the overlays in which their markers appear - (#1525). - + Don't produce a `\label{..}` for a Div or Span element. Do produce - a `\hyperdef{..}` (#1519). - - * EPUB writer: - - + If the metadata includes `page-progression-direction` (which can be - `ltr` or `rtl`, the `page-progression-direction` attribute will - be set in the EPUB spine (#1455). - - * Custom lua writers: - - + Custom writers now work with `--template`. - + Removed HTML header scaffolding from `sample.lua`. - + Made citation information available in lua writers. - - * `--normalize` and `Text.Pandoc.Shared.normalize` now consolidate - adjacent `RawBlock`s when possible. - - [API changes] - - * Added `Text.Pandoc.Readers.Docx`, exporting `readDocx` (Jesse Rosenthal). - - * Added `Text.Pandoc.Readers.EPUB`, exporting `readEPUB` (Matthew - Pickering). - - * Added `Text.Pandoc.Readers.Txt2Tags`, exporting `readTxt2Tags` (Matthew - Pickering). - - * Added `Text.Pandoc.Writers.DokuWiki`, exporting `writeDokuWiki` - (Clare Macrae). - - * Added `Text.Pandoc.Writers.Haddock`, exporting `writeHaddock`. - - * Added `Text.Pandoc.MediaBag`, exporting `MediaBag`, `lookupMedia`, - `insertMedia`, `mediaDirectory`, `extractMediaBag`. The docx and epub - readers return a pair of a `Pandoc` document and a `MediaBag` with - the media resources they contain. This can be extracted using - `--extract-media`. Writers that incorporate media (PDF, Docx, - ODT, EPUB, RTF, or HTML formats with `--self-contained`) will look - for resources in the `MediaBag` generated by the reader, in addition to - the file system or web. - - * `Text.Pandoc.Readers.TexMath`: Removed deprecated `readTeXMath`. - Renamed `readTeXMath'` to `texMathToInlines`. - - * `Text.Pandoc`: Added `Reader` data type (Matthew Pickering). - `readers` now associates names of readers with `Reader` - structures. This allows inclusion of readers, like the docx - reader, that take binary rather than textual input. - - * `Text.Pandoc.Shared`: - - + Added `capitalize` (Artyom Kazak), and replaced uses of - `map toUpper` (which give bad results for many languages). - + Added `collapseFilePath`, which removes intermediate `.` and - `..` from a path (Matthew Pickering). - + Added `fetchItem'`, which works like `fetchItem` but searches - a `MediaBag` before looking on the net or file system. - + Added `withTempDir`. - + Added `removeFormatting`. - + Added `extractSpaces` (from HTML reader) and generalized its type - so that it can be used by the docx reader (Matthew Pickering). - + Added `ordNub`. - + Added `normalizeInlines`, `normalizeBlocks`. - + `normalize` is now `Pandoc -> Pandoc` instead of - `Data a :: a -> a`. Some users may need to change their uses of - `normalize` to the newly exported `normalizeInlines` or - `normalizeBlocks`. - - * `Text.Pandoc.Options`: - - + Added `writerMediaBag` to `WriterOptions`. - + Removed deprecated and no longer used `readerStrict` in - `ReaderOptions`. This is handled by `readerExtensions` now. - + Added `Ext_compact_definition_lists`. - + Added `Ext_epub_html_exts`. - + Added `Ext_native_divs` and `Ext_native_spans`. - This allows users to turn off the default pandoc behavior of - parsing contents of div and span tags in markdown and HTML - as native pandoc Div blocks and Span inlines. - - * `Text.Pandoc.Parsing`: - - + Generalized `readWith` to `readWithM` (Matthew Pickering). - + Export `runParserT` and `Stream` (Matthew Pickering). - + Added `HasQuoteContext` type class (Matthew Pickering). - + Generalized types of `mathInline`, `smartPunctuation`, `quoted`, - `singleQuoted`, `doubleQuoted`, `failIfInQuoteContext`, - `applyMacros` (Matthew Pickering). - + Added custom `token` (Matthew Pickering). - + Added `stateInHtmlBlock` to `ParserState`. This is used to keep - track of the ending tag we're waiting for when we're parsing inside - HTML block tags. - + Added `stateMarkdownAttribute` to `ParserState`. This is used - to keep track of whether the markdown attribute has been set in - an enclosing tag. - + Generalized type of `registerHeader`, using new type classes - `HasReaderOptions`, `HasIdentifierList`, `HasHeaderMap` (Matthew - Pickering). These allow certain common functions to be reused - even in parsers that use custom state (instead of `ParserState`), - such as the MediaWiki reader. - + Moved `inlineMath`, `displayMath` from Markdown reader to Parsing, - and generalized their types (Matthew Pickering). - - * `Text.Pandoc.Pretty`: - - + Added `nestle`. - + Added `blanklines`, which guarantees a certain number of blank lines - (and no more). - - [bug fixes] - - * Markdown reader: - - + Fixed parsing of indented code in list items. Indented code - at the beginning of a list item must be indented eight spaces - from the margin (or edge of the container), or four spaces - from the list marker, whichever is greater. - + Fixed small bug in HTML parsing with `markdown_attribute`, which - caused incorrect tag nesting for input like - `<aside markdown="1">*hi*</aside>`. - + Fixed regression with intraword underscores (#1121). - + Improved parsing of inline links containing quote characters (#1534). - + Slight rewrite of `enclosure`/`emphOrStrong` code. - + Revamped raw HTML block parsing in markdown (#1330). - We no longer include trailing spaces and newlines in the - raw blocks. We look for closing tags for elements (but without - backtracking). Each block-level tag is its own `RawBlock`; - we no longer try to consolidate them (though `--normalize` will do so). - + Combine consecutive latex environments. This helps when you have - two minipages which can't have blank lines between them (#690, #1196). - + Support smallcaps through span. - `<span style="font-variant:small-caps;">foo</span>` will be - parsed as a `SmallCaps` inline, and will work in all output - formats that support small caps (#1360). - + Prevent spurious line breaks after list items (#1137). When the - `hard_line_breaks` option was specified, pandoc would formerly - produce a spurious line break after a tight list item. - + Fixed table parsing bug (#1333). - + Handle `c++` and `objective-c` as language identifiers in - github-style fenced blocks (#1318). - + Inline math must have nonspace before final `$` (#1313). - - * LaTeX reader: - - + Handle comments at the end of tables. This resolves the issue - illustrated in <http://stackoverflow.com/questions/24009489>. - + Correctly handle table rows with too few cells. LaTeX seems to - treat them as if they have empty cells at the end (#241). - + Handle leading/trailing spaces in `\emph` better. - `\emph{ hi }` gets parsed as `[Space, Emph [Str "hi"], Space]` - so that we don't get things like `* hi *` in markdown output. - Also applies to `\textbf` and some other constructions (#1146). - + Don't assume preamble doesn't contain environments (#1338). - + Allow (and discard) optional argument for `\caption` (James Aspnes). - - * HTML reader: - - + Fixed major parsing problem with HTML tables. Table cells were - being combined into one cell (#1341). - + Fixed performance issue with malformed HTML tables. - We let a `</table>` tag close an open `<tr>` or `<td>` (#1167). - + Allow space between `<col>` and `</col>`. - + Added `audio` and `source` in `eitherBlockOrInline`. - + Moved `video`, `svg`, `progress`, `script`, `noscript`, `svg` from - `blockTags` to `eitherBlockOrInline`. - + `map` and `object` were mistakenly in both lists; they have been removed - from `blockTags`. - + Ignore `DOCTYPE` and `xml` declarations. - - * MediaWiki reader: - - + Don't parse backslash escapes inside `<source>` (#1445). - + Tightened up template parsing. - The opening `{{` must be followed by an alphanumeric or `:`. - This prevents the exponential slowdown in #1033. - + Support "Bild" for images. - - * DocBook reader: - - + Better handle elements inside code environments. Pandoc's document - model does not allow structure inside code blocks, but at least this way - we preserve the text (#1449). - + Support `<?asciidoc-br?>` (#1236). - - * Textile reader: - - + Fixed list parsing. Lists can now start without an intervening - blank line (#1513). - + HTML block-level tags that do not start a line are parsed as - inline HTML and do not interrupt paragraphs (as in RedCloth). - - * Org reader: - - + Make tildes create inline code (#1345). Also relabeled `code` and - `verbatim` parsers to accord with the org-mode manual. - + Respect `:exports` header argument in code blocks (Craig Bosma). - + Fixed tight lists with sublists (#1437). - - * EPUB writer: - - + Avoid excess whitespace in `nav.xhtml`. This should improve - TOC view in iBooks (#1392). - + Fixed regression on cover image. - In 1.12.4 and 1.12.4.2, the cover image would not appear properly, - because the metadata id was not correct. Now we derive the id from the - actual cover image filename, which we preserve rather than using - "cover-image." - + Keep newlines between block elements. This allows - easier diff-ability (#1424). - + Use `stringify` instead of custom `plainify`. - + Use `renderTags'` for all tag rendering. This properly handles tags - that should be self-closing. Previously `<hr/>` would appear in EPUB - output as `<hr></hr>` (#1420). - + Better handle HTML media tags. - + Handle multiple dates with OPF `event` attributes. Note: in EPUB3 we - can have only one dc:date, so only the first one is used. - - * LaTeX writer: - - + Correctly handle figures in notes. Notes can't contain figures in - LaTeX, so we fake it to avoid an error (#1053). - + Fixed strikeout + highlighted code (#1294). - Previously strikeout highlighted code caused an error. - - * ConTeXt writer: - - + Improved detection of autolinks with URLs containing escapes. - - * RTF writer: - - + Improved image embedding: `fetchItem'` is now used to get the - images, and calculated image sizes are indicated in the RTF. - + Avoid extra paragraph tags in metadata (#1421). - - * HTML writer: - - + Deactivate "incremental" inside slide speaker notes (#1394). - + Don't include empty items in the table of contents for - slide shows. (These would result from creating a slide - using a horizontal rule.) - - * MediaWiki writer: - - + Minor renaming of `st` prefixed names. - - * AsciiDoc writer: - - + Double up emphasis and strong emphasis markers in intraword - contexts, as required by asciidoc (#1441). - - * Markdown writer: - - + Avoid wrapping that might start a list, blockquote, or header (#1013). - + Use Span instead of (hackish) `SmallCaps` in `plainify`. - + Don't use braced attributes for fenced code (#1416). - If `Ext_fenced_code_attributes` is not set, the first class - attribute will be printed after the opening fence as a bare word. - + Separate adjacent lists of the same kind with an HTML comment (#1458). - - * PDF writer: - - + Fixed treatment of data uris for images (#1062). - - * Docx writer: - - + Use Compact style for empty table cells (#1353). - Otherwise we get overly tall lines when there are empty - table cells and the other cells are compact. - + Create overrides per-image for `media/` in reference docx. - This should be somewhat more robust and cover more types of images. - + Improved `entryFromArchive` to avoid an unneeded parse. - + Section numbering carries over from reference.docx (#1305). - + Simplified `abstractNumId` numbering. Instead of sequential numbering, - we assign numbers based on the list marker styles. - - * `Text.Pandoc.Options`: - - + Removed `Ext_fenced_code_attributes` from `markdown_github` - extensions. - - * `Text.Pandoc.ImageSize`: - - + Use default instead of failing if image size not found - in exif header (#1358). - + ignore unknown exif header tag rather than crashing. - Some images seem to have tag type of 256, which was causing - a runtime error. - - * `Text.Pandoc.Shared`: - - + `fetchItem`: unescape URI encoding before reading local file (#1427). - + `fetchItem`: strip a fragment like `?#iefix` from the extension before - doing mime lookup, to improve mime type guessing. - + Improved logic of `fetchItem`: absolute URIs are fetched from the net; - other things are treated as relative URIs if `sourceURL` is `Just _`, - otherwise as file paths on the local file system. - + `fetchItem` now properly handles links without a protocol (#1477). - + `fetchItem` now escapes characters not allowed in URIs before trying - to parse the URIs. - + Fixed runtime error with `compactify'DL` on certain lists (#1452). - - * `pandoc.hs`: Don't strip path off of `writerSourceURL`: the path is - needed to resolve relative URLs when we fetch resources (#750). - - * `Text.Pandoc.Parsing` - - + Simplified `dash` and `ellipsis` (#1419). - + Removed `(>>~)` in favor of the equivalent `(<*)` (Matthew Pickering). - + Generalized functions to use `ParsecT` (Matthew Pickering). - + Added `isbn` and `pmid` to list of recognized schemes (Matthew - Pickering). - - [template changes] - - * Added haddock template. - * EPUB3: Added `type` attribute to `link` tags. They are supposed to - be "advisory" in HTML5, but kindlegen seems to require them. - * EPUB3: Put title page in section with `epub:type="titlepage"`. - * LaTeX: Made `\subtitle` work properly (#1327). - * LaTeX/Beamer: remove conditional around date (#1321). - * LaTeX: Added `lot` and `lof` variables, which can be set to - get `\listoftables` and `\listoffigures` (#1407). Note that - these variables can be set at the command line with `-Vlot -Vlof` - or in YAML metadata. - - [under the hood improvements] - - * Rewrote normalize for efficiency (#1385). - - * Rewrote Haddock reader to use `haddock-library` (#1346). - - + This brings pandoc's rendering of haddock markup in line - with the new haddock. - + Fixed line breaks in `@` code blocks. - + alex and happy are no longer build-depends. - - * Added `Text.Pandoc.Compat.Directory` to allow building against - different versions of the `directory` library. - - + Added `Text.Pandoc.Compat.Except` to allow building against - different versions of `mtl`. - - * Code cleanup in some writers, using Reader monad to avoid - passing options parameter around (Matej Kollar). - - * Improved readability in `pandoc.hs`. - - * Miscellaneous code cleanups (Artyom Kazak). - - * Avoid `import Prelude hiding (catch)` (#1309, thanks to Michael - Thompson). - - * Changed `http-conduit` flag to `https`. Depend on `http-client` - and `http-client-tls` instead of `http-conduit`. (Note: pandoc still - depends on `conduit` via `yaml`.) - - * Require `highlighting-kate >= 0.5.8.5` (#1271, #1317, Debian #753299). - This change to highlighting-kate means that PHP fragments no longer need - to start with `<?php`. It also fixes a serious bug causing failures with - ocaml and fsharp. - - * Require latest `texmath`. This fixes `\tilde{E}` and allows - `\left` to be used with `]`, `)` etc. (#1319), among many other - improvements. - - * Require latest `zip-archive`. This has fixes for unicode path names. - - * Added tests for plain writer. - - * `Text.Pandoc.Templates`: - - + Fail informatively on template syntax errors. - With the move from parsec to attoparsec, we lost good error - reporting. In fact, since we weren't testing for end of input, - malformed templates would fail silently. Here we revert back to - Parsec for better error messages. - + Use `ordNub` (#1022). - - * Benchmarks: - - + Made benchmarks compile again (Artyom Kazak). - + Fixed so that the failure of one benchmark does not prevent others - from running (Artyom Kazak). - + Use `nfIO` instead of the `getLength` trick to force full evaluation. - + Changed benchmark to use only the test suite, so that benchmarks - run more quickly. - - * Windows build script: - - + Add `-windows` to file name. - + Use one install command for pandoc, pandoc-citeproc. - + Force install of pandoc-citeproc. - - * `make_osx_package`: Call zip file `pandoc-VERSION-osx.zip`. - The zip should not be named `SOMETHING.pkg.zip`, or OSX finder - will extract it into a folder named `SOMETHING.pkg`, which it - will interpret as a defective package (#1308). - - * `README`: - - + Made headers for all extensions so they have IDs and can be - linked to (Beni Cherniavsky-Paskin). - + Fixed typos (Phillip Alday). - + Fixed documentation of attributes (#1315). - + Clarified documentation on small caps (#1360). - + Better documentation for `fenced_code_attributes` extension - (Caleb McDaniel). - + Documented fact that you can put YAML metadata in a separate file - (#1412). - - -pandoc (1.12.4.2) - - * Require highlighting-kate >= 0.5.8. Fixes a performance regression. - - * Shared: `addMetaValue` now behaves slightly differently: - if both the new and old values are lists, it concatenates their - contents to form a new list. - - * LaTeX reader: - - + Set `bibliography` in metadata from `\bibliography` or - `\addbibresource` command. - + Don't error on `%foo` with no trailing newline. - - * Org reader: - - + Support code block headers (`#+BEGIN_SRC ...`) (Albert Krewinkel). - + Fix parsing of blank lines within blocks (Albert Krewinkel). - + Support pandoc citation extension (Albert Krewinkel). This can - be turned off by specifying `org-citations` as the input format. - - * Markdown reader: - - + `citeKey` moved to `Text.Pandoc.Parsing` so it can be used by - other readers (Albert Krewinkel). - - * `Text.Pandoc.Parsing`: - - + Added `citeKey` (see above). - + Added `HasLastStrPosition` type class and `updateLastStrPos` - and `notAfterString` functions. - - * Updated copyright notices (Albert Krewinkel). - - * Added default.icml to data files so it installs with the package. - - * OSX package: - - + The binary is now built with options to ensure that it can be - used with OSX 10.6+. - + Moved OSX package materials to osx directory. - + Added OSX package uninstall script, included in the zip container - (thanks to Daniel T. Staal). - -pandoc (1.12.4) - - * Made it possible to run filters that aren't executable (#1096). - Pandoc first tries to find the executable (searching the path - if path isn't given). If it fails, but the file exists and has - a `.py`, `.pl`, `.rb`, `.hs`, or `.php` extension, pandoc runs the filter - using the appropriate interpreter. This should make it easier to - use filters on Windows, and make it more convenient for everyone. - - * Added Emacs org-mode reader (Albert Krewinkel). - - * Added InDesign ICML Writer (Mauro Bieg). - - * MediaWiki reader: - - + Accept image links in more languages (Jaime Marquínez Ferrándiz). - + Fixed bug in certain nested lists (#1213). If a level 2 list was - followed by a level 1 list, the first item of the level 1 list - would be lost. - + Handle table rows containing just an HTML comment (#1230). - - * LaTeX reader: - - + Give better location information on errors, pointing to line - numbers within included files (#1274). - + LaTeX reader: Better handling of `table` environment (#1204). - Positioning options no longer rendered verbatim. - + Better handling of figure and table with caption (#1204). - + Handle `@{}` and `p{length}` in tabular. The length is not actually - recorded, but at least we get a table (#1180). - + Properly handle `\nocite`. It now adds a `nocite` metadata - field. Citations there will appear in the bibliography but not - in the text (unless you explicitly put a `$nocite$` variable - in your template). - - * Markdown reader: - - + Ensure that whole numbers in YAML metadata are rendered without - decimal points. (This became necessary with changes to aeson - and yaml libraries. aeson >= 0.7 and yaml >= 0.8.8.2 are now required.) - + Fixed regression on line breaks in strict mode (#1203). - + Small efficiency improvements. - + Improved parsing of nested `div`s. Formerly a closing `div` tag - would be missed if it came right after other block-level tags. - + Avoid backtracking when closing `</div>` not found. - + Fixed bug in reference link parsing in `markdown_mmd`. - + Fixed a bug in list parsing (#1154). When reading a raw list - item, we now strip off up to 4 spaces. - + Fixed parsing of empty reference link definitions (#1186). - + Made one-column pipe tables work (#1218). - - * Textile reader: - - + Better support for attributes. Instead of being ignored, attributes - are now parsed and included in Span inlines. The output will be a bit - different from stock textile: e.g. for `*(foo)hi*`, we'll get - `<em><span class="foo">hi</span></em>` instead of - `<em class="foo">hi</em>`. But at least the data is not lost. - + Improved treatment of HTML spans (%) (#1115). - + Improved link parsing. In particular we now pick up on attributes. - Since pandoc links can't have attributes, we enclose the whole link in - a span if there are attributes (#1008). - + Implemented correct parsing rules for inline markup (#1175, Matthew - Pickering). - + Use Builder (Matthew Pickering). - + Fixed list parsing bug (#1500). - + Don't allow inline formatting to extend over newlines. - This matches the behavior of RedCarpet, avoids some ugly bugs, - and improves performance. - - * DocBook reader: - - + Better treatment of `formalpara`. We now emit the title (if present) - as a separate paragraph with boldface text (#1215). - + Set metadata `author` not `authors`. - + Added recognition of `authorgroup` and `releaseinfo` elements (#1214, - Matthew Pickering). - + Converted current meta information parsing in DocBook to a more - extensible version which is aware of the more recent meta - representation (Matthew Pickering). - - * HTML reader: - - + Require tagsoup 0.13.1, to fix a bug with parsing of script tags - (#1248). - + Treat processing instructions & declarations as block. Previously - these were treated as inline, and included in paragraph tags in HTML - or DocBook output, which is generally not what is wanted (#1233). - + Updated `closes` with rules from HTML5 spec. - + Use Builder (Matthew Pickering, #1162). - - * RST reader: - - + Remove duplicate `http` in PEP links (Albert Krewinkel). - + Make rst figures true figures (#1168, CasperVector) - + Enhanced Pandoc's support for rST roles (Merijn Verstaaten). - rST parser now supports: all built-in rST roles, new role definition, - role inheritance, though with some limitations. - + Use `author` rather than `authors` in metadata. - + Better handling of directives. We now correctly handle field - lists that are indented more than three spaces. We treat an - `aafig` directive as a code block with attributes, so it can be - processed in a filter (#1212). - - * LaTeX writer: - - + Mark span contents with label if span has an ID (Albert Krewinkel). - + Made `--toc-depth` work well with books in latex/pdf output (#1210). - + Handle line breaks in simple table cells (#1217). - + Workaround for level 4-5 headers in quotes. These previously produced - invalid LaTeX: `\paragraph` or `\subparagraph` in a `quote` environment. - This adds an `mbox{}` in these contexts to work around the problem. - See <http://tex.stackexchange.com/a/169833/22451> (#1221). - + Use `\/` to avoid en-dash ligature instead of `-{}-` (Vaclav Zeman). - This is to fix LuaLaTeX output. The `-{}-` sequence does not avoid the - ligature with LuaLaTeX but `\/` does. - + Fixed string escaping in `hyperref` and `hyperdef` (#1130). - - * ConTeXt writer: Improved autolinks (#1270). - - * DocBook writer: - - + Improve handling of hard line breaks in Docbook writer - (Neil Mayhew). Use a `<literallayout>` for the entire paragraph, not - just for the newline character. - + Don't let line breaks inside footnotes influence the enclosing - paragraph (Neil Mayhew). - + Distinguish tight and loose lists in DocBook output, using - `spacing="compact"` (Neil Mayhew, #1250). - - * Docx writer: When needed files are not present in the user's - `reference.docx`, fall back on the versions in the `reference.docx` - in pandoc's data files. This fixes a bug that occurs when a - `reference.docx` saved by LibreOffice is used. (#1185) - - * EPUB writer: - - + Include extension in epub ids. This fixes a problem with duplicate - extensions for fonts and images with the same base name but different - extensions (#1254). - + Handle files linked in raw `img` tags (#1170). - + Handle media in `audio` source tags (#1170). - Note that we now use a `media` directory rather than `images`. - + Incorporate files linked in `video` tags (#1170). `src` and `poster` - will both be incorporated into `content.opf` and the epub container. - - * HTML writer: - - + Add colgroup around col tags (#877). Also affects EPUB writer. - + Fixed bug with unnumbered section headings. Unnumbered section - headings (with class `unnumbered`) were getting numbers. - + Improved detection of image links. Previously image links with - queries were not recognized, causing `<embed>` to be used instead - of `<img>`. - - * Man writer: Ensure that terms in definition lists aren't line wrapped - (#1195). - - * Markdown writer: - - + Use proper escapes to avoid unwanted lists (#980). Previously we used - 0-width spaces, an ugly hack. - + Use longer backtick fences if needed (#1206). If the content contains a - backtick fence and there are attributes, make sure longer fences are - used to delimit the code. Note: This works well in pandoc, but github - markdown is more limited, and will interpret the first string of three - or more backticks as ending the code block. - - * RST writer: Avoid stack overflow with certain tables (#1197). - - * RTF writer: Fixed table cells containing paragraphs. - - * Custom writer: - - + Correctly handle UTF-8 in custom lua scripts (#1189). - + Fix bugs with lua scripts with mixed-case filenames and - paths containing `+` or `-` (#1267). Note that `getWriter` - in `Text.Pandoc` no longer returns a custom writer on input - `foo.lua`. - - * AsciiDoc writer: Handle multiblock and empty table cells - (#1245, #1246). Added tests. - - * `Text.Pandoc.Options`: Added `readerTrace` to `ReaderOptions` - - * `Text.Pandoc.Shared`: - - + Added `compactify'DL` (formerly in markdown reader) (Albert Krewinkel). - + Fixed bug in `toRomanNumeral`: numbers ending with '9' would - be rendered as Roman numerals ending with 'IXIV' (#1249). Thanks to - Jesse Rosenthal. - + `openURL`: set proxy with value of http_proxy env variable (#1211). - Note: proxies with non-root paths are not supported, due to - limitations in `http-conduit`. - - * `Text.Pandoc.PDF`: - - + Ensure that temp directories deleted on Windows (#1192). The PDF is - now read as a strict bytestring, ensuring that process ownership will - be terminated, so the temp directory can be deleted. - + Use `/` as path separators in a few places, even on Windows. - This seems to be necessary for texlive (#1151, thanks to Tim Lin). - + Use `;` for `TEXINPUTS` separator on Windows (#1151). - + Changes to error reporting, to handle non-UTF8 error output. - - * `Text.Pandoc.Templates`: - - + Removed unneeded datatype context (Merijn Verstraaten). - - + YAML objects resolve to "true" in conditionals (#1133). - Note: If `address` is a YAML object and you just have `$address$` - in your template, the word `true` will appear, which may be - unexpected. (Previously nothing would appear.) - - * `Text.Pandoc.SelfContained`: - - + `mkSelfContained` now takes just two arguments, `WriterOptions` and - the string. - * It no longer looks in data files. This only made sense when we - had copies of slidy and S5 code there. - * `fetchItem'` is used instead of the nearly duplicate `getItem`. - + Handle `poster` attribute in `video` tags (#1188). - - * `Text.Pandoc.Parsing`: - - + Made `F` an instance of Applicative (#1138). - + Added `stateCaption`. - + Added `HasMacros`, simplified other typeclasses. - Removed `updateHeaderMap`, `setHeaderMap`, `getHeaderMap`, - `updateIdentifierList`, `setIdentifierList`, `getIdentifierList`. - + Changed the smart punctuation parser to return `Inlines` - rather than `Inline` (Matthew Pickering). - + Changed `HasReaderOptions`, `HasHeaderMap`, `HasIdentifierList` - from typeclasses of monads to typeclasses of states. This simplifies - the instance definitions and provides more flexibility. Generalized - type of `getOption` and added a default definition. Removed - `askReaderOption`. Added `extractReaderOption`. Added - `extractHeaderMap` and `updateHeaderMap` in `HasHeaderMap`. - Gave default definitions for `getHeaderMap`, `putHeaderMap`, - `modifyHeaderMap`. Added `extractIdentifierList` and - `updateIdentifierList` in `HasIdentifierList`. Gave defaults - for `getIdentifierList`, `putIdentifierList`, and - `modifyIdentifierList`. The ultimate goal here is to allow different - parsers to use their own, tailored parser states (instead of - `ParserState`) while still using shared functions. - - * Template changes: - - + LaTeX template: Use `fontenc` package only with `pdflatex` (#1164). - + LaTeX template: Add `linestretch` and `fontfamily` variables. - + LaTeX template: Conditionalize author and date commands. - + Beamer template: Consistent styles for figure and table captions - (aaronwolen). - + LaTeX and beamer template: Adjust widths correctly for oversized - images. Use `\setkeys{Gin}{}` to set appropriate defaults for - `\includegraphics` (Yihui Xie, Garrick Aden-Buie). Load - `upquote` only after `fontenc` (Yihui Xie). - + Beamer template: Added caption package (#1200). - + Beamer template: changes for better unicode handling (KarolS). - + DocBook template: use `authorgroup` if there are authors. - + revealjs template: Move `include-after` to end (certainlyakey). - + revealjs template: Fixed PDF print function (#1220, kevinkenan). - - * Bumped version bounds of dependencies. - - * Added a `--trace` command line option, for debugging backtracking - bugs. So far this only works with the markdown reader. - - * MathMLinHTML: Fixed deprecation warning (#362, gwern, Albert Krewinkel). - - * Updated travis script to test with multiple GHC versions. - - * Force failure of a Travis build if GHC produces warnings (Albert - Krewinkel). - - * Add `.editorconfig` (Albert Krewinkel). - See <http://editorconfig.org/> for details. - - * Give more useful error message if '-t pdf' is specified (#1155). - - * Added `Cite`, `SmallCaps` to `Arbitrary` instance (#1269). - - * Allow `html4` as a synonym of `html` as a reader (it already works - as a writer). - - * README: - - + Added an explanation of how to use YAML metadata to - force items to appear in the bibliography without citations in - the text (like LaTeX `\nocite`). - + Added note to `--bibtex/--natbib`: not for use in making PDF - (#1194, thanks to nahoj). - + Added explanatory notes about `--natbib` and `--biblatex`. - + Added specification of legal syntax for citation keys. - + Fixed variable defaults documentation (Albert Krewinkel). - - * Removed copyright statements for files that have been removed - (Albert Krewinkel). - - * Moved some doc files from `data-files` to `extra-source-files` (#1123). - They aren't needed at runtime. We keep README and COPYRIGHT in data - to ensure that they'll be available on all systems on which pandoc - is installed. - - * Use cabal sandboxes in Windows build script. - -pandoc (1.12.3.3) - - * To changes to source; recompiled tarball with latest alex and - happy, so they will work with GHC 7.8. - -pandoc (1.12.3.2) - - * Bumped version bounds for blaze-html, blaze-markup. - - * ImageSize: Avoid use of lookAhead, which is not in binary >= 0.6 - (#1124). - - * Fixed mediawiki ordered list parsing (#1122). - - * HTML reader: Fixed bug reading inline math with `$$` (#225). - - * Added support for LaTeX style literate Haskell code blocks in rST - (Merijn Verstraaten). - -pandoc (1.12.3.1) - - * Relaxed version constraint on binary, allowing the use of binary 0.5. - -pandoc (1.12.3) - - * The `--bibliography` option now sets the `biblio-files` variable. - So, if you're using `--natbib` or `--biblatex`, you can just use - `--bibliography=foo.bib` instead of `-V bibliofiles=foo`. - - * Don't run pandoc-citeproc filter if `--bibliography` is - used together with `--natbib` or `--biblatex` (Florian Eitel). - - * Template changes: - - + Updated beamer template to include booktabs. - + Added `abstract` variable to LaTeX template. - + Put `header-includes` after `title` in LaTeX template (#908). - + Allow use of `\includegraphics[size]` in beamer. - This just required porting a macro definition from the default - LaTeX template to the default beamer template. - - * `reference.docx`: Include `FootnoteText` style. - Otherwise Word ignores the style, even when specified in the `pPr`. - (#901) - - * `reference.odt`: Tidied `styles.xml`. - - * Relaxed version bounds for dependencies. - - * Added `withSocketsDo` around http conduit code in `openURL`, - so it works on Windows (#1080). - - * Added `Cite` function to `sample.lua`. - - * Markdown reader: - - + Fixed regression in title blocks (#1089). - If author field was empty, date was being ignored. - + Allow backslash-newline hard line breaks in grid and - multiline table cells. - + Citation keys may now start with underscores, and may contain - underscores adjacent to internal punctuation. - - * LaTeX reader: - - + Add support for `Verb` macro (jrnold) (#1090). - + Support babel-style quoting: `` "`..."' ``. - - * Properly handle script blocks in strict mode. (That is, - `markdown-markdown_in_html_blocks`.) Previously a spurious - `<p>` tag was being added (#1093). - - * Docbook reader: Avoid failure if `tbody` contains no `tr` or `row` - elements. - - * LaTeX writer: - - + Factored out function for table cell creation. - + Better treatment of footnotes in tables. - Notes now appear in the regular sequence, rather than in the - table cell. (This was a regression in 1.10.) - - * HTML reader: Parse name/content pairs from meta tags as metadata. - Closes #1106. - - * Moved `fixDisplayMath` from Docx writer to `Writer.Shared`. - - * OpenDocument writer: Fixed `RawInline`, `RawBlock` so they don't escape. - - * ODT writer: Use mathml for proper rendering of formulas. - Note: LibreOffice's support for this seems a bit buggy. But - it should be better than what we had before. - - * RST writer: Ensure no blank line after def in definition list (#992). - - * Markdown writer: Don't use tilde code blocks with braced attributes in - `markdown_github` output. A consequence of this change is that the - backtick form will be preferred in general if both are enabled. That - is good, as it is much more widespread than the tilde form. (#1084) - - * Docx writer: Fixed problem with some modified reference docx files. - Include `word/_rels/settings.xml.rels` if it exists, as well as other - `rels` files besides the ones pandoc generates explicitly. - - * HTML writer: - - + With `--toc`, headers no longer link to themselves (#1081). - + Omit footnotes from TOC entries. Otherwise we get doubled - footnotes when headers have notes! - - * EPUB writer: - - + Avoid duplicate notes when headings contain notes. - This arose because the headings are copied into the metadata - "title" field, and the note gets rendered twice. We strip the - note now before putting the heading in "title". - + Strip out footnotes from toc entries. - + Fixed bug with `--epub-stylesheet`. Now the contents of - `writerEpubStylesheet` (set by `--epub-stylesheet`) - should again work, and take precedence over a stylesheet specified - in the metadata. - - * `Text.Pandoc.MIME`: Added `wmf`, `emf`. - - * `Text.Pandoc.Shared`: `fetchItem` now handles image URLs beginning - with `//`. - - * `Text.Pandoc.ImageSize`: Parse EXIF format JPEGs. Previously - we could only get size information for JFIF format, which led - to squished images in Word documents. Closes #976. - - * Removed old `MarkdownTest_1.0.3` directory (#1104). - -pandoc (1.12.2.1) - - * Markdown reader: Fixed regression in list parser, involving - continuation lines containing raw HTML (or even verbatim raw HTML). - -pandoc (1.12.2) - - * Metadata may now be included in YAML blocks in a markdown document. - For example, - - --- - title: - - type: main - text: My Book - - type: subtitle - text: An investigation of metadata - creator: - - role: author - text: John Smith - - role: editor - text: Sarah Jones - identifier: - - scheme: DOI - text: doi:10.234234.234/33 - publisher: My Press - rights: (c) 2007 John Smith, CC BY-NC - cover-image: img/mypic.jpg - ... - - Metadata may still be provided using `--epub-metadata`; it will - be merged with the metadata in YAML blocks. - - * EPUB writer: - - + `meta` tags are now used instead of `opf` attributes for EPUB3. - + Insert "svg" property as needed in opf (EPUB 3). - + Simplify `imageTypeOf` using `getMimeType`. - + Add properties attribute to `cover-image` item for EPUB 3. - + Don't include node for `cover.xhtml` if no cover! - + Ensure that same identifier is used throughout (#1044). - If an identifier is given in metadata, we use that; otherwise - we generate a random uuid. - + Add cover reference to guide element (EPUB 2) (Shaun Attfield). - Fixes an issue with Calibre putting the cover at the end of the book - if the spine has `linear="no"`. Apparently this is best practice - for other converters as well: - <http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.6>. - + Allow `stylesheet` in metadata. The value is a path to the stylesheet. - + Allow partial dates: `YYYY`, `YYYY-MM`. - - * Markdown writer: Fix rendering of tight sublists (#1050). - Previously a spurious blank line was included after a tight sublist. - - * ODT writer: Add `draw:name` attribute to `draw:frame` elements (#1069). - This is reported to be necessary to avoid an error from recent - versions of Libre Office when files contain more than one image - Thanks to wmanley for reporting and diagnosing the problem. - - * ConTeXt writer: Don't hardcode figure/table placement and numbering. - Instead, let this be set in the template, using `\setupfloat`. - Thanks to on4aa and Aditya Mahajan for the suggestion (#1067). - - * Implemented CSL flipflopping spans in DOCX, LaTeX, and HTML writers. - - * Fixed bug with markdown intraword emphasis. Closes #1066. - - * Docbook writer: Hierarchicalize block content in metadata. - Previously headers just disappeared from block-level metadata - when it was used in templates. Now we apply the 'hierarchicalize' - transformation. Note that a block headed by a level-2 header will - turn into a `<sect1>` element. - - * OpenDocument writer: Skip raw HTML (#1035). - Previously it was erroneously included as verbatim text. - - * HTML/EPUB writer, footnotes: Put `<sup>` tag inside `<a>` tags. - This allows better control of formatting, since the `<a>` - tags have a distinguishing class (#1049). - - * Docx writer: - - + Use mime type info returned by fetchItem. - + Fixed core metadata (#1046). - Don't create empty date nodes if no date given. - Don't create multiple `dc:creator` nodes; instead separate by - semicolons. - + Fix URL for core-properties in `_rels/.rels` (#1046). - - * Plain writer: don't print `<span>` tags. - - * LaTeX writer: - - + Fix definition lists with internal links in terms (#1032). - This fix puts braces around a term that contains an internal - link, to avoid problems with square brackets. - + Properly escape pdftitle, pdfauthor (#1059). - + Use booktabs package for tables (thanks to Jose Luis Duran). - - * Updated beamer template. Now references should work properly - (in a slide) when `--biblatex` or `--natbib` is used. - - * LaTeX reader: - - + Parse contents of curly quotes or matched `"` as quotes. - + Support `\textnormal` as span with class `nodecor`. - This is needed for pandoc-citeproc. - + Improved citation parsing. This fixes a run-time error that occurred - with `\citet{}` (empty list of keys). It also ensures that empty keys - don't get produced. - - * MediaWiki reader: Add automatic header identifiers. - - * HTML reader: - - + Use pandoc `Div` and `Span` for raw `<div>`, `<span>` when - `--parse-raw`. - + Recognize `svg` tags as block level content (thanks to MinRK). - + Parse LaTeX math if appropriate options are set. - - * Markdown reader: - - + Yaml block must start immediately after `---`. If there's a blank - line after `---`, we interpreted it as a horizontal rule. - + Correctly handle empty bullet list items. - + Stop parsing "list lines" when we hit a block tag. - This fixes exponential slowdown in certain input, e.g. - a series of lists followed by `</div>`. - - * Slides: Preserve `<div class="references">` in references slide. - - * `Text.Pandoc.Writer.Shared`: - - + Fixed bug in `tagWithAttrs`. A space was omitted before key-value - attributes, leading to invalid HTML. - + `normalizeDate`: Allow dates with year only (thanks to Shaun Attfield). - + Fixed bug in `openURL` with `data:` URIs. Previously the base-64 - encoded bytestring was returned. We now decode it so it's a proper - image! - - * DocBook reader: Handle numerical attributes starting with decimal. - Also use `safeRead` instead of `read`. - - * `Text.Pandoc.Readers.TexMath`: Export `readTeXMath'`, which attends - to display/inline. Deprecate `readTeXMath`, and use `readTeXMath'` - in all the writers. Require `texmath >= 0.6.5.2`. - - * `Text.Pandoc.MIME`: - - + Add entry for `jfif`. - + In looking up extensions, drop the encoding info. - E.g. for 'image/jpg;base64' we should lookup 'image/jpg'. - - * Templates: Changed how array variables are resolved. Previously if - `foo` is an array (which might be because multiple values were set on - the command line), `$foo$` would resolve to the concatenation of the - elements of foo. This is rarely useful behavior. It has been changed - so that the first value is rendered. Of course, you can still iterate - over the values using `$for(foo)$`. This has the result that you can - override earlier settings using `-V` by putting new values later on the - command line, which is useful for many purposes. - - * `Text.Pandoc`: Don't default to `pandocExtensions` for all writers. - - * Allow "epub2" as synonym for "epub", "html4" for "html". - - * Don't look for slidy files in data files with `--self-contained`. - - * Allow `https:` command line arguments to be downloaded. - - * Fixed `make_osx_package.sh` so data files embedded in `pandoc-citeproc`. - -pandoc (1.12.1) - - * `Text.Pandoc.Definition`: Changed default JSON serialization format. - Instead of `{"Str": "foo"}`, for example, we now have `{"t": "Str", - "c": "foo"}`. This new format is easier to work with outside of Haskell. - Incidentally, "t" stands for "tag", "c" for "contents". - - * MediaWiki reader: Trim contents of `<math>` tags, to avoid problems - when converting to markdown (#1027). - - * LaTeX reader: - - + Ensure that preamble doesn't contribute to the text of - the document. - + Fixed character escaping in \url{}. Previously `\~` wasn't handled - properly, among others. - + Parse `{groups}` as `Span`. This is needed for accurate conversion of - bibtex titles, since we need to know what was protected from - titlecase conversions. - - * LaTeX writer: - - + Specially escape non-ascii characters in labels. - Otherwise we can get compile errors and other bugs when - compiled with pdflatex (#1007). Thanks to begemotv2718 for the fix. - + Add link anchors for code blocks with identifiers (#1025). - - * Throughout the code, use `isURI` instead of `isAbsoluteURI`. - It allows fragments identifiers. - - * Slide formats: - - + A Div element with class "notes" is treated as speaker - notes. Currently beamer goes to `\note{}`, revealjs to - `<aside class="notes">`, and the notes are simply suppressed in - other formats (#925). - + Fixed `. . .` (pause) on HTML slide formats. Closes #1029. - The old version caused a pause to be inserted before the first - material on a slide. This has been fixed. - + Removed data files for s5, slideous, slidy. - Users of s5 and slideous will have to download the needed - files, as has been documented for some time in the README. - By default, slidy code will be sought on the web, as before. - - * HTML writer: Insert command to typeset mathjax only in slideous output - (#966, #1012). - - * RST writer: Skip spaces after display math. Otherwise we get indentation - problems, and part of the next paragraph may be rendered as part of the - math. - - * OpenDocument writer: Fix formatting of strikeout code (#995), - thanks to wilx. don't use `font-face-decls` variable. - - * Fixed test suite so it works with cabal sandboxes. - -pandoc (1.12.0.2) - - * Removed `stringable` dependency. - -pandoc (1.12.0.1) - - * Allow `--metadata` to be repeated for the same key to form a list. - This also has the effect that `--bibliography` can be repeated, - as before. - - * Handle boolean values in `--metadata`. Note that anything not parseable - as a YAML boolean or string is treated as a literal string. - You can get a string value with "yes", or any of the strings interpretable - as booleans, by quoting it: - - -M boolvalue=yes -M stringvalue='"yes"' - - * LaTeX writer: Don't print references if `--natbib` or `--biblatex` - option used. - - * DOCX writer: Add `settings.xml` to the zip container. Fixes a bug - in which docx files could not be read by some versions of Word - and LibreOffice (#990). - - * Fixed a regression involving slide shows with bibliographies. - The Div container around references messed up the procedure for carving - a document into slides. So we now remove the surrounding Div in - `prepSlides`. - - * More informative error message when a filter is not found in path. - - * Depend on pandoc-types 1.12.1. This provide `ToJSONFilter` - instances for `Data a => a -> [a]` and `Data a => a -> IO [a]`. - - * Don't use unicode_collation in building OSX package: - it adds something like 50MB of dependencies to the package. - - * Declare alex and happy as build-tools (#986). - -pandoc (1.12) - - [new features] - - * Much more flexible metadata, including arbitrary fields and structured - values. Metadata can be specified flexibly in pandoc markdown using - YAML metadata blocks, which may occur anywhere in the document: - - --- - title: Here is my title. - abstract: | - This is the abstract. - - 1. It can contain - 2. block content - and *inline markup* - - tags: [cat, dog, animal] - ... - - Metadata fields automatically populate template variables. - - * Added `opml` (OPML) as input and output format. The `_note` attribute, - used in OmniOutliner and supported by multimarkdown, is supported. - We treat the contents as markdown blocks under a section header. - - * Added `haddock` (Haddock markup) as input format (David Lazar). - - * Added `revealjs` output format, for reveal.js HTML 5 slide shows. - (Thanks to Jamie F. Olson for the initial patch.) - Nested vertical stacks are used for hierarchical structure. - Results for more than one level of nesting may be odd. - - * Custom writers can now be written in lua. - - pandoc -t data/sample.lua - - will load the script sample.lua and use it as a custom writer. - (For a sample, do `pandoc --print-default-data-file sample.lua`.) - Note that pandoc embeds a lua interpreter, so lua need not be - installed separately. - - * New `--filter/-F` option to make it easier to run "filters" - (Pandoc AST transformations that operate on JSON serializations). - Filters are always passed the name of the output format, so their - behavior can be tailored to it. The repository - <https://github.com/jgm/pandocfilters> contains - a python module for writing pandoc filters in python, with - a number of examples. - - * Added `--metadata/-M` option. - This is like `--variable/-V`, but actually adds to metadata, not - just variables. - - * Added `--print-default-data-file` option, which allows printing - of any of pandoc's data files. (For example, - `pandoc --print-default-data-file reference.odt` will print - `reference.odt`.) - - * Added syntax for "pauses" in slide shows: - - This gives - - . . . - - me pause. - - * New markdown extensions: - - + `ignore_line_breaks`: causes intra-paragraph line breaks to be ignored, - rather than being treated as hard line breaks or spaces. This is useful - for some East Asian languages, where spaces aren't used between words, - but text is separated into lines for readability. - + `yaml_metadata_block`: Parse YAML metadata blocks. (Default.) - + `ascii_identifiers`: This will force `auto_identifiers` to use ASCII - only. (Default for `markdown_github`.) (#807) - + `lists_without_preceding_blankline`: Allow lists to start without - preceding blank space. (Default for `markdown_github`.) (#972) - - [behavior changes] - - * `--toc-level` no longer implies `--toc`. - Reason: EPUB users who don't want a visible TOC may still want - to set the TOC level for in the book navigation. - - * `--help` now prints in and out formats in alphabetical order, and - says something about PDF output (#720). - - * `--self-contained` now returns less verbose output (telling you - which URLs it is fetching, but not giving the full header). In - addition, there are better error messages when fetching a URL fails. - - * Citation support is no longer baked in to core pandoc. Users who - need citations will need to install and use a separate filter - (`--filter pandoc-citeproc`). This filter will take `bibliography`, - `csl`, and `citation-abbreviations` from the metadata, though it - may still be specified on the command line as before. - - * A `Cite` element is now created in parsing markdown whether or not - there is a matching reference. - - * The `pandoc-citeproc` script will put the bibliography at the - end of the document, as before. However, it will be put inside a `Div` - element with class "references", allowing users some control - over the styling of references. A final header, if any, will - be included in the `Div`. - - * The markdown writer will not print a bibliography if the - `citations` extension is enabled. (If the citations are formatted - as markdown citations, it is redundant to have a bibliography, - since one will be generated automatically.) - - * Previously we used to store the directory of the first input file, - even if it was local, and used this as a base directory for finding - images in ODT, EPUB, Docx, and PDF. This has been confusing to many - users. So we now look for images relative to the current - working directory, even if the first file argument is in another - directory. Note that this change may break some existing workflows. - If you have been assuming that relative links will be interpreted - relative to the directory of the first file argument, you'll need - to make that the current directory before running pandoc. (#942) - - * Better error reporting in some readers, due to changes in `readWith`: - the line in which the error occurred is printed, with a caret pointing - to the column. - - * All slide formats now support incremental slide view for definition lists. - - * Parse `\(..\)` and `\[..\]` as math in MediaWiki reader. - Parse `:<math>...</math>` as display math. These notations are used with - the MathJax MediaWiki extension. - - * All writers: template variables are set automatically from metadata - fields. However, variables specified on the command line with - `--variable` will completely shadow metadata fields. - - * If `--variable` is used to set many variables with the same name, - a list is created. - - * Man writer: The `title`, `section`, `header`, and `footer` can now - all be set individually in metadata. The `description` variable has been - removed. Quotes have been added so that spaces are allowed in the - title. If you have a title that begins - - COMMAND(1) footer here | header here - - pandoc will still parse it into a title, section, header, and - footer. But you can also specify these elements explicitly (#885). - - * Markdown reader - - + Added support for YAML metadata blocks, which can come anywhere - in the document (not just at the beginning). A document can contain - multiple YAML metadata blocks. - + HTML span and div tags are parsed as pandoc Span and Div elements. - - * Markdown writer - - + Allow simple tables to be printed as grid tables, - if other table options are disabled. This means you can do - `pandoc -t markdown-pipe_tables-simple_tables-multiline_tables` - and all tables will render as grid tables. - + Support YAML title block (render fields in alphabetical order - to make output predictable). - - [API changes] - - * `Meta` in `Text.Pandoc.Definition` has been changed to allow - structured metadata. (Note: existing code that pattern-matches - on `Meta` will have to be revised.) Metadata can now contain - indefinitely many fields, with content that can be a string, - a Boolean, a list of `Inline` elements, a list of `Block` - elements, or a map or list of these. - - * A new generic block container (`Div`) has been added to `Block`, - and a generic inline container (`Span`) has been added to `Inline`. - These can take attributes. They will render in HTML, Textile, - MediaWiki, Org, RST and and Markdown (with `markdown_in_html` - extension) as HTML `<div>` and `<span>` elements; in other formats - they will simply pass through their contents. But they can be - targeted by scripts. - - * `Format` is now a newtype, not an alias for String. - Equality comparisons are case-insensitive. - - * Added `Text.Pandoc.Walk`, which exports hand-written tree-walking - functions that are much faster than the SYB functions from - `Text.Pandoc.Generic`. These functions are now used where possible - in pandoc's code. (`Tests.Walk` verifies that `walk` and `query` - match the generic traversals `bottomUp` and `queryWith`.) - - * Added `Text.Pandoc.JSON`, which provides `ToJSON` and `FromJSON` - instances for the basic pandoc types. They use GHC generics and - should be faster than the old JSON serialization using - `Data.Aeson.Generic`. - - * Added `Text.Pandoc.Process`, exporting `pipeProcess`. - This is a souped-up version of `readProcessWithErrorcode` that - uses lazy bytestrings instead of strings and allows setting - environment variables. (Used in `Text.Pandoc.PDF`.) - - * New module `Text.Pandoc.Readers.OPML`. - - * New module `Text.Pandoc.Writers.OPML`. - - * New module `Text.Pandoc.Readers.Haddock` (David Lazar). - This is based on Haddock's own lexer/parser. - - * New module `Text.Pandoc.Writers.Custom`. - - * In `Text.Pandoc.Shared`, `openURL` and `fetchItem` now return an - Either, for better error handling. - - * Made `stringify` polymorphic in `Text.Pandoc.Shared`. - - * Removed `stripTags` from `Text.Pandoc.XML`. - - * `Text.Pandoc.Templates`: - - + Simplified `Template` type to a newtype. - + Removed `Empty`. - + Changed type of `renderTemplate`: it now takes a JSON context - and a compiled template. - + Export `compileTemplate`. - + Export `renderTemplate'` that takes a string instead of a compiled - template. - + Export `varListToJSON`. - - * `Text.Pandoc.PDF` exports `makePDF` instead of `tex2pdf`. - The signature of `makePDF` has changed and now contains - an additional argument for pdf engine options. - - * `Text.Pandoc`: - - + Made `toJsonFilter` an alias for `toJSONFilter` from `Text.Pandoc.JSON`. - + Removed `ToJsonFilter` typeclass. `ToJSONFilter` from - `Text.Pandoc.JSON` should be used instead. (Compiling against - pandoc-types instead of pandoc will also produce smaller executables.) - * Removed the deprecated `jsonFilter` function. - + Added `readJSON`, `writeJSON` to the API (#817). - - * `Text.Pandoc.Options`: - - + Added `Ext_lists_without_preceding_blankline`, - `Ext_ascii_identifiers`, `Ext_ignore_line_breaks`, - `Ext_yaml_metadataBlock` to `Extension`. - + Changed `writerSourceDirectory` to `writerSourceURL` and changed the - type to a `Maybe`. `writerSourceURL` is set to 'Just url' when the - first command-line argument is an absolute URL. (So, relative links - will be resolved in relation to the first page.) Otherwise, 'Nothing'. - + All bibliography-related fields have been removed from - `ReaderOptions` and `WriterOptions`: `writerBiblioFiles`, - `readerReferences`, `readerCitationStyle`. - + Removed `writerPdfArgs` from `WriterOptions`. These are now - passed in as a parameter to `makePDF`. - - * The `Text.Pandoc.Biblio` module has been removed. Users of the - pandoc library who want citation support will need to use - `Text.CSL.Pandoc` from `pandoc-citeproc`. - - - [bug fixes] - - * In markdown, don't autolink a bare URI that is followed by `</a>` - (#937). - - * `Text.Pandoc.Shared` - - + `openURL` now follows redirects (#701), properly handles `data:` - URIs, and prints diagnostic output to stderr rather than stdout. - + `readDefaultDataFile`: normalize the paths. This fixes bugs in - `--self-contained` on pandoc compiled with `embed_data_files` (#833). - + Fixed `readDefaultDataFile` so it works on Windows. - + Better error messages for `readDefaultDataFile`. Instead of - listing the last path tried, which can confuse people who are - using `--self-contained`, so now we just list the data file name. - + URL-escape pipe characters. Even though these are legal, `Network.URI` - doesn't regard them as legal in URLs. So we escape them first (#535). - - * Mathjax in HTML slide shows: include explicit "Typeset" call. - This seems to be needed for some formats (e.g. slideous) and won't - hurt in others (#966). - - * `Text.Pandoc.PDF` - - + On Windows, create temdir in working directory, since the system - temp directory path may contain tildes, which can cause - problems in LaTeX (#777). - + Put temporary output directory in `TEXINPUTS` (see #917). - + `makePDF` tries to download images that are not found locally, - if the first argument is a URL (#917). - + If compiling with `pdflatex` yields an encoding error, offer - the suggestion to use `--latex-engine=xelatex`. - - * Produce automatic header identifiers in parsing textile, RST, - and LaTeX, unless `auto_identifiers` extension is disabled (#967). - - * `Text.Pandoc.SelfContained`: Strip off fragment, query of relative URL - before treating as a filename. This fixes `--self-contained` when used - with CSS files that include web fonts using the method described here: - <http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/> - (#739). Handle `src` in `embed`, `audio`, `source`, `input` tags. - - * `Text.Pandoc.Parsing`: `uri` parser no longer treats punctuation before - percent-encoding, or a `+` character, as final punctuation. - - * `Text.Pandoc.ImageSize`: Handle EPS (#903). This change will make - EPS images properly sized on conversion to Word. - - * Slidy: Use slidy.js rather than slidy.js.gz. - Reason: some browsers have trouble with the gzipped js file, - at least on the local file system (#795). - - * Markdown reader - - + Properly handle blank line at beginning of input (#882). - + Fixed bug in unmatched reference links. The input - `[*infile*] [*outfile*]` was getting improperly parsed: - "infile" was emphasized, but "*outfile*" was literal (#883). - + Allow internal `+` in citation identifiers (#856). - + Allow `.` or `)` after `#` in ATX headers if no `fancy_lists`. - + Do not generate blank title, author, or date metadata elements. - Leave these out entirely if they aren't present. - + Allow backtick code blocks not to be preceded by blank line (#975). - - * Textile reader: - - + Correctly handle entities. - + Improved handling of `<pre>` blocks (#927). Remove internal HTML tags - in code blocks, rather than printing them verbatim. Parse attributes - on `<pre>` tag for code blocks. - - * HTML reader: Handle non-simple tables (#893). Column widths are read from - `col` tags if present, otherwise divided equally. - - * LaTeX reader - - + Support alltt environment (#892). - + Support `\textasciitilde`, `\textasciicircum` (#810). - + Treat `\textsl` as emphasized text reader (#850). - + Skip positional options after `\begin{figure}`. - + Support `\v{}` for hacek (#926). - + Don't add spurious ", " to citation suffixes. - This is added when needed in pandoc-citeproc. - + Allow spaces in alignment spec in tables, e.g. `{ l r c }`. - + Improved support for accented characters (thanks to Scott Morrison). - + Parse label after section command and set id (#951). - - * RST reader: - - + Don't insert paragraphs where docutils doesn't. - `rst2html` doesn't add `<p>` tags to list items (even when they are - separated by blank lines) unless there are multiple paragraphs in the - list. This commit changes the RST reader to conform more closely to - what docutils does (#880). - + Improved metadata. Treat initial field list as metadata when - standalone specified. Previously ALL fields "title", "author", - "date" in field lists were treated as metadata, even if not at - the beginning. Use `subtitle` metadata field for subtitle. - + Fixed 'authors' metadata parsing in reST. Semicolons separate - different authors. - - * MediaWiki reader - - + Allow space before table rows. - + Fixed regression for `<ref>URL</ref>`. - `<` is no longer allowed in URLs, according to the uri parser - in `Text.Pandoc.Parsing`. Added a test case. - + Correctly handle indented preformatted text without preceding - or following blank line. - + Fixed `|` links inside table cells. Improved attribute parsing. - + Skip attributes on table rows. Previously we just crashed if - rows had attributes, now we ignore them. - + Ignore attributes on headers. - + Allow `Image:` for images (#971). - + Parse an image with caption in a paragraph by itself as a figure. - - * LaTeX writer - - + Don't use ligatures in escaping inline code. - + Fixed footnote numbers in LaTeX/PDF tables. This fixes a bug - wherein notes were numbered incorrectly in tables (#827). - + Always create labels for sections. Previously the labels were only - created when there were links to the section in the document (#871). - + Stop escaping `|` in LaTeX math. - This caused problems with array environments (#891). - + Change `\` to `/` in paths. `/` works even on Windows in LaTeX. - `\` will cause major problems if unescaped. - + Write id for code block to label attribute in LaTeX when listings - is used (thanks to Florian Eitel). - + Scale LaTeX tables so they don't exceed columnwidth. - + Avoid problem with footnotes in unnumbered headers (#940). - - * Beamer writer: when creating beamer slides, add `allowframebreaks` option - to the slide if it is one of the header classes. It is recommended - that your bibliography slide have this attribute: - - # References {.allowframebreaks} - - This causes multiple slides to be created if necessary, depending - on the length of the bibliography. - - * ConTeXt writer: Properly handle tables without captions. The old output - only worked in MkII. This should work in MkIV as well (#837). - - * MediaWiki writer: Use native mediawiki tables instead of HTML (#720). - - * HTML writer: - - + Fixed `--no-highlight` (Alexander Kondratskiy). - + Don't convert to lowercase in email obfuscation (#839). - + Ensure proper escaping in `<title>` and `<meta>` fields. - - * AsciiDoc writer: - - + Support `--atx-headers` (Max Rydahl Andersen). - + Don't print empty identifier blocks `([[]])` on headers (Max - Rydahl Andersen). - - * ODT writer: - - + Fixing wrong numbered-list indentation in open document format - (Alexander Kondratskiy) (#369). - + `reference.odt`: Added pandoc as "generator" in `meta.xml`. - + Minor changes for ODF 1.2 conformance (#939). We leave the - nonconforming `contextual-spacing` attribute, which is provided by - LibreOffice itself and seems well supported. - - * Docx writer: - - + Fixed rendering of display math in lists. - In 1.11 and 1.11.1, display math in lists rendered as a new list - item. Now it always appears centered, just as outside of lists, - and in proper display math style, no matter how far indented the - containing list item is (#784). - + Use `w:br` with `w:type` `textWrapping` for linebreaks. - Previously we used `w:cr` (#873). - + Use Compact style for Plain block elements, to - differentiate between tight and loose lists (#775). - + Ignore most components of `reference.docx`. - We take the `word/styles.xml`, `docProps/app.xml`, - `word/theme/theme1.xml`, and `word/fontTable.xml` from - `reference.docx`, ignoring everything else. This should help - with the corruption problems caused when different versions of - Word resave the reference.docx and reorganize things. - + Made `--no-highlight` work properly. - - * EPUB writer - - + Don't add `dc:creator` tags if present in EPUB metadata. - + Add `id="toc-title"` to `h1` in `nav.xhtml` (#799). - + Don't put blank title page in reading sequence. - Set `linear="no"` if no title block. Addresses #797. - + Download webtex images and include as data URLs. - This allows you to use `--webtex` in creating EPUBs. - Math with `--webtex` is automatically made self-contained. - + In `data/epub.css`, removed highlighting styles (which - are no longer needed, since styles are added by the HTML - writer according to `--highlighting-style`). Simplified - margin fields. - + If resource not found, skip it, as in Docx writer (#916). - - * RTF writer: - - + Properly handle characters above the 0000-FFFF range. - Uses surrogate pairs. Thanks to Hiromi Ishii for the patch. - + Fixed regression with RTF table of contents. - + Only autolink absolute URIs. This fixes a regression, #830. - - * Markdown writer: - - + Only autolink absolute URIs. This fixes a regression, #830. - + Don't wrap attributes in fenced code blocks. - + Write full metadata in MMD style title blocks. - + Put multiple authors on separate lines in pandoc titleblock. - Also, don't wrap long author entries, as new lines get treated - as new authors. - - * `Text.Pandoc.Templates`: - - + Fixed bug retrieving default template for markdown variants. - + Templates can now contain "record lookups" in variables; - for example, `author.institution` will retrieve the `institution` - field of the `author` variable. - + More consistent behavior of `$for$`. When `foo` is not a list, - `$for(foo)$...$endfor$` should behave like $if(foo)$...$endif$. - So if `foo` resolves to "", no output should be produced. - See pandoc-templates#39. - - * Citation processing improvements (now part of pandoc-citeproc): - - + Fixed `endWithPunct` The new version correctly sees a sentence - ending in '.)' as ending with punctuation. This fixes a bug which - led such sentences to receive an extra period at the end: '.).'. - Thanks to Steve Petersen for reporting. - + Don't interfere with Notes that aren't citation notes. - This fixes a bug in which notes not generated from citations were - being altered (e.g. first letter capitalized) (#898). - + Only capitalize footnote citations when they have a prefix. - + Changes in suffix parsing. A suffix beginning with a digit gets 'p' - inserted before it before passing to citeproc-hs, so that bare numbers - are treated as page numbers by default. A suffix not beginning with - punctuation has a space added at the beginning (rather than a comma and - space, as was done before for not-author-in-text citations). - The result is that `\citep[23]{item1}` in LaTeX will be interpreted - properly, with '23' treated as a locator of type 'page'. - + Many improvements to citation rendering, due to fixes in citeproc-hs - (thanks to Andrea Rossato). - + Warnings are issued for undefined citations, which are rendered - as `???`. - + Fixed hanging behavior when locale files cannot be found. - - [template changes] - - * DocBook: Use DocBook 4.5 doctype. - - * Org: '#+TITLE:' is inserted before the title. - Previously the writer did this. - - * LaTeX: Changes to make mathfont work with xelatex. - We need the mathspec library, not just fontspec, for this. - We also need to set options for setmathfont (#734). - - * LaTeX: Use `tex-ansi` mapping for `monofont`. - This ensures that straight quotes appear as straight, rather than - being treated as curly. See #889. - - * Made `\includegraphics` more flexible in LaTeX template. - Now it can be used with options, if needed. Thanks to Bernhard Weichel. - - * LaTeX/Beamer: Added `classoption` variable. - This is intended for class options like `oneside`; it may - be repeated with different options. (Thanks to Oliver Matthews.) - - * Beamer: Added `fonttheme` variable. (Thanks to Luis Osa.) - - * LaTeX: Added `biblio-style` variable (#920). - - * DZSlides: title attribute on title section. - - * HTML5: add meta tag to allow scaling by user (Erik Evenson) - - [under-the-hood improvements] - - * Markdown reader:Improved strong/emph parsing, using the strategy of - <https://github.com/jgm/Markdown>. The new parsing algorithm requires - no backtracking, and no keeping track of nesting levels. It will give - different results in some edge cases, but these should not affect normal - uses. - - * Added `Text.Pandoc.Compat.Monoid`. - This allows pandoc to compile with `base` < 4.5, where `Data.Monoid` - doesn't export `<>`. Thanks to Dirk Ullirch for the patch. - - * Added `Text.Pandoc.Compat.TagSoupEntity`. - This allows pandoc to compile with `tagsoup` 0.13.x. - Thanks to Dirk Ullrich for the patch. - - * Most of `Text.Pandoc.Readers.TeXMath` has been moved to the - `texmath` module (0.6.4). (This allows `pandoc-citeproc` to - handle simple math in bibliography fields.) - - * Added `Text.Pandoc.Writers.Shared` for shared functions used - only in writers. `metaToJSON` is used in writers to create a - JSON object for use in the templates from the pandoc metadata - and variables. `getField`, `setField`, and `defField` are - for working with JSON template contexts. - - * Added `Text.Pandoc.Asciify` utility module. - This exports functions to create ASCII-only versions of identifiers. - - * `Text.Pandoc.Parsing` - - + Generalized state type on `readWith` (API change). - + Specialize readWith to `String` input. (API change). - + In `ParserState`, replace `stateTitle`, `stateAuthors`, `stateDate` - with `stateMeta` and `stateMeta'`. - - * `Text.Pandoc.UTF8`: use strict bytestrings in reading. The use of lazy - bytestrings seemed to cause problems using pandoc on 64-bit Windows - 7/8 (#874). - - * Factored out `registerHeader` from markdown reader, added to - `Text.Pandoc.Parsing`. - - * Removed `blaze_html_0_5` flag, require `blaze-html` >= 0.5. - Reason: < 0.5 does not provide a monoid instance for Attribute, - which is now needed by the HTML writer (#803). - - * Added `http-conduit` flag, which allows fetching https resources. - It also brings in a large number of dependencies (`http-conduit` - and its dependencies), which is why for now it is an optional flag - (#820). - - * Added CONTRIBUTING.md. - - * Improved INSTALL instructions. - - * `make-windows-installer.bat`: Removed explicit paths for executables. - - * `aeson` is now used instead of `json` for JSON. - - * Set default stack size to 16M. This is needed for some large - conversions, esp. if pandoc is compiled with 64-bit ghc. - - * Various small documentation improvements. - Thanks to achalddave and drothlis for patches. - - * Removed comment that chokes recent versions of CPP (#933). - - * Removed support for GHC version < 7.2, since pandoc-types now - requires at least GHC 7.2 for GHC generics. - - -pandoc (1.11.1) - - * Markdown reader: - - + Fixed regression in which parentheses were lost in link URLs. - Added tests. Closes #786. - + Better handling of unmatched double quotes in `--smart` mode. - These occur frequently in fiction, since it is customary not to - close quotes in dialogue if the speaker does not change between - paragraphs. The unmatched quotes now get turned into literal - left double quotes. (No `Quoted` inline is generated, however.) - Closes #99 (again). - - * HTML writer: Fixed numbering mismatch between TOC and sections. - `--number-offset` now affects TOC numbering as well - as section numbering, as it should have all along. Closes #789. - - * Markdown writer: Reverted 1.11 change that caused citations to be rendered - as markdown citations, even if `--bibliography` was specified, unless - `citation` extension is disabled. Now, formatted citations are always - printed if `--bibliography` was specified. If you want to reformat - markdown keeping pandoc markdown citations intact, don't use - `--bibliography`. Note that citations parsed from LaTeX documents will - be rendered as pandoc markdown citations when `--bibliography` is not - specified. - - * ODT writer: Fixed regression leading to corrupt ODTs. - This was due to a change in the `Show` instance for - `Text.Pandoc.Pretty.Doc`. Closes #780. - - * Fixed spacing bugs involving code block attributes in - RST reader and Markdown writer. Closes #763. - - * Windows package: Various improvements due to Fyodor Sheremetyev. - - + Automatically set installation path (Program Files or Local App Data). - + Set system PATH environment variable when installing for all users. - + Pandoc can installed for all users using the following command. - `msiexec /i pandoc-1.11.msi ALLUSERS=1`. - - * Bumped QuickCheck version bound. - -pandoc (1.11) - - * Added `--number-offset` option. (See README for description.) - - * Added `--default-image-extension` option. (See README for description.) - - * `--number-sections` behavior change: headers with class `unnumbered` - will not be numbered. - - * `--version` now reports the default data directory. - - * `Text.Pandoc.Parsing` is no longer exposed. (API change.) - - * `Text.Pandoc.Highlighting` is no longer exposed. (API change.) - - * `Text.Pandoc.Shared`: Changed type of `Element`. `Sec` now includes - a field for `Attr` rather than just `String`. (API change.) - - * Added `markdown_github` as input format. This was an accidental - omission in 1.10. - - * Added `readerDefaultImageExtension` field to `ReaderOptions`. (API - change.) - - * Added `writerNumberOffset` field in `WriterOptions`. (API change.) - - * Beamer template: - - + Fixed captions with longtable. Thanks to Joost Kremers. - + Provide `\Oldincludegraphics` as in LaTeX template (Benjamin Bannier). - - * LaTeX template: - - + Load microtype after fonts. Microtype needs to know - what fonts are being used. Thanks to dfc for the patch. - + Set `secnumdepth` to 5 if `--number-sections` specified. - This yields behavior equivalent to the other writers, numbering - level 4 and 5 headers too. Closes #753. - - * HTML reader: - - + Handle `<colgroup>` tag. - + Preserve all header attributes. - - * LaTeX reader: - - + Parse `\hrule` as `HorizontalRule`. Closes #746. - + Parse starred variants of `\section` etc. as headers with - attribute `unnumbered`. - + Read optional attributes in `lstlisting` and `Verbatim` environments. - We convert these to pandoc standard names, e.g. `numberLines` - for `numbers=left`, `startFrom=100` from `firstnumber=100`. - + Handle language attribute for lstlistings. - + Better support for Verbatim and minted environments. Closes #763. - - * Markdown reader: - - + `-` in an attribute context = `.unnumbered`. The point of this - is to provide a way to specify unnumbered headers in non-English - documents. - + Fixed bug parsing key/value attributes. Parsing failed if you - had an unquoted attribute immediately before the final '}'. - + Make backslash escape work in attributes. - + Fix title block parsing. Now if `mmd_title_blocks` is specified, - pandoc will parse a MMD title block if it sees one, even if - `pandoc_title_blocks` is enabled. - + Refactoring: `litChar` now includes entities, so we don't need - to use `fromEntities` e.g. on titles. - + Allow spaces around borders in pipe tables. Closes #772. - + Allow all punctuation in angle-bracket autolinks. Previously - things like `----` were disallowed, because the uri parser - treated them as trailing punctuation. Closes #768. - + Make `implicit_header_references` work properly when - headers are given explicit identifiers. - + Check for tables before line blocks. Otherwise some pipe - tables get treated as line blocks. - + Allow `&` in emails (for entities). - + Properly handle entities in titles and links. A markdown link - `<http://göogle.com>` should be a link to `http://göogle.com`. - Closes #723. - - * Textile reader: - - + Handle attributes on headers. - - * LaTeX reader: - - + Add `fig:` as title for images with captions. - This is needed for them to be rendered as figures. Closes #766. - + Never emit an empty paragraph. See #761. - + Handle `\caption` for images in figures. Closes #766. - + Parse `\section*`, etc. as unnumbered sections. - - * HTML writer: - - + Support header attributes. The attributes go on - the enclosing `section` or `div` tag if `--section-divs` is specified. - + Fixed a regression (only now noticed) in html+lhs output. - Previously the bird tracks were being omitted. - - * LaTeX writer: - - + Omit lists with no items to avoid LaTeX errors. - + Support line numbering with `--listings`. - If `numberLines` class is present, we add `numbers=left`; - if `startFrom` is present, we add `firstnumber=`. (#763) - - * ConTeXt writer: - - + Removed `\placecontent`. This produced a duplicate toc, - in conjunction with `\placelist`. - + Use `\title`, `\subject` etc. for headers with - `unnumbered` class. - - * Textile writer: - - + Support header attributes. - - * Markdown writer: - - + Use grid tables when needed, and if enabled. Closes #740. - + Render citations as pandoc-markdown citations. - Previously citations were rendered as citeproc-formatted citations - by default. Now we render them as pandoc citations, e.g. `[@item1]`, - unless the `citations` extension is disabled. - If you still want formatted citations in your markdown output, - use `pandoc -t markdown-citations`. - - * RST writer: - - + Support `:number-lines:` in code blocks. - - * Docx writer: - - + Better treatment of display math. Display math inside a - paragraph is now put in a separate paragraph, so it will render - properly (centered and without extra blank lines around it). - Partially addresses #742. - + Content types and document rels xml files are now created from - scratch, rather than being taken over from `reference.docx`. - This fixes problems that arise when you edit the `reference.docx` - with Word. - + We also now encode mime types for each individual image rather - than using defaults. This should allow us to handle a wider - range of image types (including PDF). Closes #414. - + Changed style names in `reference docx`. - `FootnoteReference` -> `FootnoteRef`, `Hyperlink` -> `Link`. - The old names got changed by Word when the `reference.docx` was - edited. Closes #414. - - * EPUB writer: - - + Fix section numbering. Previously the numbering restarted from 1 - in each chapter (with `--number-sections`), though the numbers in - the table of contents were correct. - + Headers with "unnumbered" attribute are not numbered. (Nor do they - cause an increment in running numbering.) Section numbers now work - properly, even when there is material before the first numbered section. - + Include HTML TOC, even in epub2. The TOC is included in `<spine>`, - but `linear` is set to `no` unless the `--toc` option is specified. - Include `<guide>` element in OPF. This should allow the TOC to - be usable in Kindles when converted with kindlegen. Closes #773. - - * `Text.Pandoc.Parsing`: Optimized `oneOfStringsCI`. - This dramatically reduces the speed penalty that comes from enabling the - `autolink_bare_uris` extension. The penalty is still substantial (in one - test, from 0.33s to 0.44s), but nowhere near what it used to be. - The RST reader is also much faster now, as it autodetects URIs. - - * `Text.Pandoc.Shared`: `hierarchicalize` will not number section - with class "unnumbered". Unnumbered sections get `[]` for their - section number. - - * `Text.Pandoc.Pretty`: - - + Fixed `chomp` so it works inside `Prefixed` elements. - + Changed `Show` instance so it is better for debugging. - - * `Text.Pandoc.ImageSize`: Added `Pdf` to `ImageType`. - - * `Text.Pandoc.UTF8`: Strip off BOM if present. Closes #743. - - * Windows installer improvements: - - + The installer is now signed with a certificate (thanks to - Fyodor Sheremetyev). - + WiX is used instead of InnoSetup. The installer is now a - standard msi file. - + The version number is now auto-detected, and need not be - updated separately. - - * OSX installer improvements: - - + The package and pandoc executable are now signed with a - certificate (thanks to Fyodor Sheremetyev). - + RTF version of license is used. - + Use full path for sysctl in `InstallationCheck` script (jonahbull). - Closes #580. - - * Converted COPYING to markdown. - - * pandoc.cabal: Require latest versions of highlighting-kate, - texmath, citeproc-hs, zip-archive. - -pandoc (1.10.1) - - * Markdown reader: various optimizations, leading to a - significant performance boost. - - * RST reader: Allow anonymous form of inline links: - `` `hello <url>`__ `` Closes #724. - - * Mediawiki reader: Don't require newlines after tables. - Thanks to jrunningen for the patch. Closes #733. - - * Fixed LaTeX macro parsing. Now LaTeX macro definitions are preserved - when output is LaTeX, and applied when it is another format. - Partially addresses #730. - - * Markdown and RST readers: Added parser to `block` that skips blank - lines. This fixes a subtle regression involving grid tables with - empty cells. Also added test for grid table with empty cells. - Closes #732. - - * RST writer: Use `.. code:: language` for code blocks with language. - Closes #721. - - * DocBook writer: Fixed output for hard line breaks, adding a newline - between `<literallayout>` tags. - - * Markdown writer: Use an autolink when link text matches url. - Previously we also checked for a null title, but this - test fails for links produced by citeproc-hs in bibliographies. - So, if the link has a title, it will be lost on conversion - to an autolink, but that seems okay. - - * Markdown writer: Set title, author, date variables as before. - These are no longer used in the default template, since we use - titleblock, but we set them anyway for those who use custom templates. - - * LaTeX writer: Avoid extra space at start/end of table cell. - Thanks to Nick Bart for the suggestion of using @{}. - - * `Text.Pandoc.Parsing`: - - + More efficient version of `anyLine`. - + Type of `macro` has changed; the parser now returns `Blocks` - instead of `Block`. - - * Relaxed old-time version bound, allowing 1.0.*. - - * Removed obsolete `hsmarkdown` script. Those who need `hsmarkdown` - should create a symlink as described in the README. - -pandoc (1.10.0.5) - - * Markdown reader: Try `lhsCodeBlock` before `rawTeXBlock`. Otherwise - `\begin{code}...\end{code}` isn't handled properly in markdown+lhs. - Thanks to Daniel Miot for noticing the bug and suggesting the fix. - - * Markdown reader: Fixed bug with headerless grid tables. - The 1.10 code assumed that each table header cell contains exactly one - block. That failed for headerless tables (0) and also for tables with - multiple blocks in a header cell. The code is fixed and tests provided. - Thanks to Andrew Lee for pointing out the bug. - - * Markdown reader: Fixed regressions in fenced code blocks. Closes #722. - - + Tilde code fences can again take a bare language string - (`~~~ haskell`), not just curly-bracketed attributes - (`~~~ {.haskell}`). - + Backtick code blocks can take the curly-bracketed attributes. - + Backtick code blocks don't *require* a language. - + Consolidated code for the two kinds of fenced code blocks. - - * LaTeX template: Use `\urlstyle{same}` to avoid monospace URLs. - - * Markdown writer: Use proportional font for email autolinks with - obfuscation. Closes #714. - - * Corrected name of `blank_before_blockquote` in README. Closes #718. - - * `Text.Pandoc.Shared`: Fixed bug in `uri` parser. - The bug prevented an autolink at the end of a string (e.g. - at the end of a line block line) from counting as a link. Closes #711. - - * Use the `hsb2hs` preprocessor instead of TH for embed_data_files. - This should work on Windows, unlike the TH solution with - file-embed. - - * Eliminated use of TH in test suite. - - * Added `Text.Pandoc.Data` (non-exported) to hold the association - list of embedded data files, if the `embed_data_files` flag is selected. - This isolates the code that needs special treatment with file-embed or - `hsb2hs`. - - * Changes to `make-windows-installer.bat`. - - + Exit batch file if any of the cabal-dev installs fail. - + There's no longer any need to reinstall `highlighting-kate`. - + Don't start with a `cabal update`; leave that to the user. - + Force reinstall of pandoc. - - * Fixed EPUB writer so it builds with blaze-html 0.4.x. Thanks to - Jens Petersen. - -pandoc (1.10.0.4) - - * Fixed bug with escaped % in LaTeX reader. Closes #710. - -pandoc (1.10.0.3) - - * Added further missing fb2 tests to cabal file. - -pandoc (1.10.0.2) - - * Added fb2 tests to cabal file's extra-source-files. - -pandoc (1.10.0.1) - - * Bump version bounds on test-framework packages. - -pandoc (1.10) - - [new features] - - * New input formats: `mediawiki` (MediaWiki markup). - - * New output formats: `epub3` (EPUB v3 with MathML), - `fb2` (FictionBook2 ebooks). - - * New `--toc-depth` option, specifying how many levels of - headers to include in a table of contents. - - * New `--epub-chapter-level` option, specifying the header - level at which to divide EPUBs into separate files. - Note that this normally affects only performance, not the - visual presentation of the EPUB in a reader. - - * Removed the `--strict` option. Instead of using `--strict`, - one can now use the format name `markdown_strict` for either input - or output. This gives more fine-grained control that `--strict` - did, allowing one to convert from pandoc's markdown to strict - markdown or vice versa. - - * It is now possible to enable or disable specific syntax - extensions by appending them (with `+` or `-`) to the writer - or reader name. For example, - - pandoc -f markdown-footnotes+hard_line_breaks - - disables footnotes and enables treating newlines as hard - line breaks. The literate Haskell extensions are now implemented - this way as well, using either `+lhs` or `+literate_haskell`. - For a list of extension names, see the README under - "Pandoc's Markdown." - - * The following aliases have been introduced for specific - combinations of markdown extensions: `markdown_phpextra`, - `markdown_github`, `markdown_mmd`, `markdown_strict`. These aliases - work just like regular reader and writer names, and can be modified - with extension modifiers as described above. (Note that conversion - from one markdown dialect to another does not work perfectly, - because there are differences in markdown parsers besides - just the extensions, and because pandoc's internal document model is - not rich enough to capture all of the extensions.) - - * New `--html-q-tags` option. The previous default was to use `<q>` - tags for smart quotes in HTML5. But `<q>` tags are also valid HTML4. - Moreover, they are not a robust way of typesetting quotes, since - some user agents don't support them, and some CSS resets (e.g. - bootstrap) prevent pandoc's quotes CSS from working properly. - We now just insert literal quote characters by default in both - `html` and `html5` output, but this option is provided for - those who still want `<q>` tags. - - * The markdown reader now prints warnings (to stderr) about - duplicate link and note references. Closes #375. - - * Markdown syntax extensions: - - + Added pipe tables. Thanks to François Gannaz for the initial patch. - These conform to PHP Markdown Extra's pipe table syntax. A subset - of org-mode table syntax is also supported, which means that you can - use org-mode's nice table editor to create tables. - - + Added support for RST-style line blocks. These are - useful for verse and addresses. - - + Attributes can now be specified for headers, using the same - syntax as in code blocks. (However, currently only the - identifier has any effect in most writers.) For example, - - # My header {#foo} - - See [the header above](#foo). - - + Pandoc will now act as if link references have been defined - for all headers without explicit identifiers. - So, you can do this: - - # My header - - Link to [My header]. - Another link to [it][My header]. - - Closes #691. - - * LaTeX reader: - - + Command macros now work everywhere, including non-math. - Environment macros still not supported. - + `\input` now works, as well as `\include`. TEXINPUTS is used. - Pandoc looks recursively into included files for more included files. - - [behavior changes] - - * The Markdown reader no longer puts the text of autolinks in a - `Code` inline. This means that autolinks will no longer appear - in a monospace font. - - * The character `/` can now appear in markdown citation keys. - - * HTML blocks in strict_markdown are no longer required to begin - at the left margin. Technically this is required, according to - the markdown syntax document, but `Markdown.pl` and other markdown - processors are more liberal. - - * The `-V` option has been changed so that if there are duplicate - variables, those specified later on the command line take precedence. - - * Tight lists now work in LaTeX and ConTeXt output. - - * The LaTeX writer no longer relien on the `enumerate` package. - Instead, it uses standard LaTeX commands to change the list numbering - style. - - * The LaTeX writer now uses `longtable` instead of `ctable`. This allows - tables to be split over page boundaries. - - * The RST writer now uses a line block to render paragraphs containing - linebreaks (which previously weren't supported at all). - - * The markdown writer now applies the `--id-prefix` to footnote IDs. - Closes #614. - - * The plain writer no longer uses backslash-escaped line breaks - (which are not very "plain"). - - * `Text.Pandoc.UTF8`: Better error message for invalid UTF8. - Read bytestring and use `Text`'s decodeUtf8 instead of using - `System.IO.hGetContents`. This way you get a message saying - "invalid UTF-8 stream" instead of "invalid byte sequence." - You are also told which byte caused the problem. - - * Docx, ODT, and EPUB writers now download images specified by a URL - instead of skipping them or raising an error. - - * EPUB writer: - - + The default CSS now left-aligns headers by default, instead of - centering. This is more consistent with the rest of the writers. - + A proper multi-level table of contents is now used in `toc.ncx`. - There is no longer a subsidiary table of contents at the beginning - of each chapter. - + Code highlighting now works by default. - + Section divs are used by default for better semantic markup. - + The title is used instead of "Title Page" in the table of contents. - Otherwise we have a hard-coded English string, which looks - strange in ebooks written in other languages. Closes #572. - - * HTML writer: - - + Put mathjax in span with class "math". Closes #562. - + Put citations in a span with class "citation." In HTML5, also include - a `data-cite` attribute with a space-separated list of citation - keys. - - * `Text.Pandoc.UTF8`: use universalNewlineMode in reading. - This treats both `\r\n` and `\n` as `\n` on input, no matter - what platform we're running on. - - * Citation processing is now done in the Markdown and LaTeX - readers, not in `pandoc.hs`. This makes it easier for library users - to use citations. - - [template changes] - - * HTML: Added css to template to preserve spaces in `<code>` tags. - Thanks to Dirk Laurie. - - * Beamer: Remove English-centric strings in section pages. - Section pages used to have "Section" and a number as well as the - section title. Now they just have the title. Similarly for part - and subsection. Closes #566. - - * LaTeX, ConTeXt: Added papersize variable. - - * LaTeX, Beamer templates: Use longtable instead of ctable. - - * LaTeX, Beamer templates: Don't require 'float' package for tables. - We don't actually seem to use the '[H]' option. - - * LaTeX: Use `upquote` package if it is available. This fixes - straight quotes in verbatim environments. - - * Markdown, plain: Fixed titleblock so it is just a single string. - Previously separate title, author, and date variables were used, - but this didn't allow different kinds of title blocks. - - * EPUB: - - + Rationalized templates. Previously there were three different - templates involved in epub production. There is now just one - template, `default.epub` or `default.epub3`. It can now be - overridden using `--template`, just like other templates. - The titlepage is now folded into the default template. - A `titlepage` variable selects it. - + UTF-8, lang tag, meta tags, title element. - - * Added scale-to-width feature to beamer template - - [API changes] - - * `Text.Pandoc.Definition`: Added `Attr` field to `Header`. - Previously header identifiers were autogenerated by the writers. - Now they are added in the readers (either automatically or explicitly). - - * `Text.Pandoc.Builder`: - - + `Inlines` and `Blocks` are now synonyms for `Many Inline` and - `Many Block`. `Many` is a newtype wrapper around `Seq`, with - custom Monoid instances for `Many Inline` and `Many Block. This - allows `Many` to be made an instance of `Foldable` and `Traversable`. - + The old `Listable` class has been removed. - + The module now exports `isNull`, `toList`, `fromList`. - + The old `Read` and `Show` instances have been removed; derived - instances are now used. - + Added `headerWith`. - - * The readers now take a `ReaderOptions` rather than a `ParserState` - as a parameter. Indeed, not all parsers use the `ParserState` type; - some have a custom state. The motivation for this change was to separate - user-specifiable options from the accounting functions of parser state. - - * New module `Text.Pandoc.Options`. This includes the `WriterOptions` - formerly in `Text.Pandoc.Shared`, and its associated - data types. It also includes a new type `ReaderOptions`, which - contains many options formerly in `ParserState`, and its associated - data types: - - + `ParserState.stateParseRaw` -> `ReaderOptions.readerParseRaw`. - + `ParserState.stateColumns` -> `ReaderOptions.readerColumns`. - + `ParserState.stateTabStop` -> `ReaderOptions.readerTabStop`. - + `ParserState.stateOldDashes` -> `ReaderOptions.readerOldDashes`. - + `ParserState.stateLiterateHaskell` -> `ReaderOptions.readerLiterateHaskell`. - + `ParserState.stateCitations` -> `ReaderOptions.readerReferences`. - + `ParserState.stateApplyMacros` -> `ReaderOptions.readerApplyMacros`. - + `ParserState.stateIndentedCodeClasses` -> - `ReaderOptions.readerIndentedCodeClasses`. - + Added `ReaderOptions.readerCitationStyle`. - - * `WriterOptions` now includes `writerEpubVersion`, `writerEpubChapterLevel`, - `writerEpubStylesheet`, `writerEpubFonts`, `writerReferenceODT`, - `writerReferenceDocx`, and `writerTOCDepth`. `writerEPUBMetadata` has - been renamed `writerEpubMetadata` for consistency. - - * Changed signatures of `writeODT`, `writeDocx`, `writeEPUB`, since they no - longer stylesheet, fonts, reference files as separate parameters. - - * Removed `writerLiterateHaskell` from `WriterOptions`, and - `readerLiterateHaskell` from `ReaderOptions`. LHS is now handled - by an extension (`Ext_literate_haskell`). - - * Removed deprecated `writerXeTeX`. - - * Removed `writerStrict` from `WriterOptions`. Added `writerExtensions`. - Strict is now handled through extensions. - - * `Text.Pandoc.Options` exports `pandocExtensions`, `strictExtensions`, - `phpMarkdownExtraExtensions`, `githubMarkdownExtensions`, - and `multimarkdownExtensions`, as well as the `Extensions` type. - - * New `Text.Pandoc.Readers.MediaWiki` module, exporting - `readMediaWiki`. - - * New `Text.Pandoc.Writers.FB2` module, exporting `writeFB2` - (thanks to Sergey Astanin). - - * `Text.Pandoc`: - - + Added `getReader`, `getWriter` to `Text.Pandoc`. - + `writers` is now an association list `(String, Writer)`. - A `Writer` can be a `PureStringWriter`, an `IOStringWriter`, or - an `IOByteStringWriter`. ALL writers are now in the 'writers' - list, including the binary writers and FB2 writer. This allows - code in `pandoc.hs` to be simplified. - + Changed type of `readers`, so all readers are in IO. - Users who want pure readers can still get them form the reader - modules; this just affects the function `getReader` that looks up - a reader based on the format name. The point of this change is to - make it possible to print warnings from the parser. - - * `Text.Pandoc.Parsing`: - - + `Text.Parsec` now exports all Parsec functions used in pandoc code. - No other module directly imports Parsec. This will make it easier - to change the parsing backend in the future, if we want to. - + `Text.Parsec` is used instead of `Text.ParserCombinators.Parsec`. - + Export the type synonym `Parser`. - + Export `widthsFromIndices`, `NoteTable'`, `KeyTable'`, `Key'`, `toKey'`, - `withQuoteContext`, `singleQuoteStart`, `singleQuoteEnd`, - `doubleQuoteStart`, `doubleQuoteEnd`, `ellipses`, `apostrophe`, - `dash`, `nested`, `F(..)`, `askF`, `asksF`, `runF`, `lineBlockLines`. - + `ParserState` is no longer an instance of `Show`. - + Added `stateSubstitutions` and `stateWarnings` to `ParserState`. - + Generalized type of `withQuoteContext`. - + Added `guardEnabled`, `guardDisabled`, `getOption`. - + Removed `failIfStrict`. - + `lookupKeySrc` and `fromKey` are no longer exported. - - * `Data.Default` instances are now provided for `ReaderOptions`, - `WriterOptions`, and `ParserState`. `Text.Pandoc` re-exports `def`. - Now you can use `def` (which is re-exported by `Text.Pandoc`) instead - of `defaultWriterOptions` (which is still defined). Closes #546. - - * `Text.Pandoc.Shared`: - - + Added `safeRead`. - + Renamed `removedLeadingTrailingSpace` to `trim`, - `removeLeadingSpace` to `triml`, and `removeTrailingSpace` to `trimr`. - + Count `\r` as space in `trim` functions. - + Moved `renderTags'` from HTML reader and `Text.Pandoc.SelfContained` - to `Shared`. - + Removed `failUnlessLHS`. - + Export `compactify'`, formerly in Markdown reader. - + Export `isTightList`. - + Do not export `findDataFile`. - + `readDataFile` now returns a strict ByteString. - + Export `readDataFileUTF8` which returns a String, like the - old `readDataFile`. - + Export `fetchItem` and `openURL`. - - * `Text.Pandoc.ImageSize`: Use strict, not lazy bytestrings. - Removed `readImageSize`. - - * `Text.Pandoc.UTF8`: Export `encodePath`, `decodePath`, - `decodeArg`, `toString`, `fromString`, `toStringLazy`, - `fromStringLazy`. - - * `Text.Pandoc.UTF8` is now an exposed module. - - * `Text.Pandoc.Biblio`: - - + csl parameter now a `String` rather than a `FilePath`. - + Changed type of `processBiblio`. It is no longer in the IO monad. - It now takes a `Maybe Style` argument rather than parameters for CSL - and abbrev filenames. (`pandoc.hs` now calls the functions to parse - the style file and add abbreviations.) - - * Markdown reader now exports `readMarkdownWithWarnings`. - - * `Text.Pandoc.RTF` now exports `writeRTFWithEmbeddedImages` instead of - `rtfEmbedImage`. - - [bug fixes] - - * Make `--ascii` work properly with `--self-contained`. Closes #568. - - * Markdown reader: - - + Fixed link parser to avoid exponential slowdowns. Closes #620. - Previously the parser would hang on input like this: - - [[[[[[[[[[[[[[[[[[hi - - We fixed this by making the link parser parser characters - between balanced brackets (skipping brackets in inline code spans), - then parsing the result as an inline list. One change is that - - [hi *there]* bud](/url) - - is now no longer parsed as a link. But in this respect pandoc behaved - differently from most other implementations anyway, so that seems okay. - - + Look for raw html/latex blocks before tables. - Otherwise the following gets parsed as a table: - - \begin{code} - -------------- - -- My comment. - \end{code} - - Closes #578. - - * RST reader: - - + Added support for `:target:` on `.. image::` blocks - and substitutions. - + Field list fixes: - - - Fixed field lists items with body beginning after a new line - (Denis Laxalde). - - Allow any char but ':' in names of field lists in RST reader - (Denis Laxalde). - - Don't allow line breaks in field names. - - Require whitespace after field list field names. - - Don't create empty definition list for metadata field lists. - Previously a field list consisting only of metadata fields (author, - title, date) would be parsed as an empty DefinitionList, which is - not legal in LaTeX and not needed in any format. - - + Don't recognize inline-markup starts inside words. - For example, `2*2 = 4*1` should not contain an emphasized - section. Added test case for "Literal symbols". Closes #569. - + Allow dashes as separator in simple tables. Closes #555. - + Added support for `container`, `compound`, `epigraph`, - `rubric`, `highlights`, `pull-quote`. - + Added support for `.. code::`. - + Made directive labels case-insensitive. - + Removed requirement that directives begin at left margin. - This was (correctly) not in earlier releases; docutils doesn't - make the requirement. - + Added support for `replace::` and `unicode::` substitutions. - + Ignore unknown interpreted roles. - + Renamed image parser to `subst`, since it now handles all - substitution references. - - * Textile reader: - - + Allow newlines before pipes in table. Closes #654. - + Fixed bug with list items containing line breaks. - Now pandoc correctly handles hard line breaks inside list items. - Previously they broke list parsing. - + Implemented comment blocks. - + Fixed bug affected words ending in hyphen. - + Properly handle links with surrounding brackets. - Square brackets need to be used when the link isn't surrounded by - spaces or punctuation, or when the URL ending may be ambiguous. - Closes #564. - + Removed nullBlock. Better to know about parsing problems than - to skip stuff when we get stuck. - + Allow ID attributes on headers. - + Textile reader: Avoid parsing dashes as strikeout. - Previously the input - - text-- - text-- - text-- - text-- - - would be parsed with strikeouts rather than dashes. This fixes - the problem by requiring that a strikeout delimiting - not be - followed by a -. Closes #631. - + Expanded list of `stringBreakers`. - This fixes a bug on input like "(_hello_)" which should - be a parenthesized emphasized "hello". - The new list is taken from the PHP source of textile 2.4. - + Fixed autolinks. Previously the textile reader and writer - incorrectly implented RST-style autolinks for URLs and email - addresses. This has been fixed. Now an autolink is done this way: - `"$":http://myurl.com`. - + Fixed footnotes bug in textile. This affected notes occurring - before punctuation, e.g. `foo[1].`. Closes #518. - - * LaTeX reader: - - + Better handling of citation commands. - + Better handling of `\noindent`. - + Added a 'try' in rawLaTeXBlock, so we can handle `\begin` without `{`. - Closes #622. - + Made `rawLaTeXInline` try to parse block commands as well. This - is usually what we want, given how `rawLaTeXInline` is used in - the markdown and textile readers. If a block-level LaTeX command - is used in the middle of a paragraph (e.g. `\subtitle` inside a title), - we can treat it as raw inline LaTeX. - + Handle \slash command. Closes #605. - + Basic `\enquote` support. - + Fixed parsing of paragraphs beginning with a group. Closes #606. - + Use curly quotes for bare straight quotes. - + Support obeylines environment. Closes #604. - + Guard against "begin", "end" in inlineCommand and - blockCommand. - + Better error messages for environments. Now it should tell you that - it was looking for \end{env}, instead of giving "unknown parse error." - - * HTML reader: - - + Added HTML 5 tags to list of block-level tags. - + HTML reader: Fixed bug in `htmlBalanced`, which - caused hangs in parsing certain markdown input using - strict mode. - + Parse `<q>` as `Quoted DoubleQuote`. - + Handle nested `<q>` tags properly. - + Modified `htmlTag` for fewer false positives. - A tag must start with `<` followed by `!`,`?`, `/`, or a letter. - This makes it more useful in the wikimedia and markdown parsers. - - * DocBook reader: Support title in "figure" element. Closes #650. - - * MediaWiki writer: - - + Remove newline after `<br/>` in translation of `LineBreak` - There's no particular need for a newline (other than making the - generated MediaWiki source look nice to a human), and in fact - sometimes it is incorrect: in particular, inside an enumeration, list - items cannot have embedded newline characters. (Brent Yorgey) - + Use `<code>` not `<tt>` for Code. - - * Man writer: Escape `-` as `\-`. - Unescaped `-`'s become hyphens, while `\-`'s are left as ascii minus - signs. That is preferable for use with command-line options. See - <http://lintian.debian.org/tags/hyphen-used-as-minus-sign.html>. Thanks - to Andrea Bolognani for bringing the issue to our attention. - - * RST writer: - - + Improved line block output. Use nonbreaking spaces for - initial indent (otherwise lost in HTML and LaTeX). - Allow multiple paragraphs in a single line block. - Allow soft breaks w continuations in line blocks. - + Properly handle images with no alt text. Closes #678. - + Fixed bug with links with duplicate text. We now (a) use anonymous - links for links with inline URLs, and (b) use an inline link instead - of a reference link if the reference link would require a label that - has already been used for a different link. Closes #511. - + Fixed hyperlinked images. Closes #611. Use `:target:` - field when you have a simple linked image. - + Don't add `:align: center` to figures. - - * Texinfo writer: Fixed internal cross-references. - Now we insert anchors after each header, and use `@ref` instead of `@uref` - for links. Commas are now escaped as `@comma{}` only when needed; - previously all commas were escaped. (This change is needed, in part, - because `@ref` commands must be followed by a real comma or period.) Also - insert a blank line in from of `@verbatim` environments. - - * DocBook writer: - - + Made --id-prefix work in DocBook as well as HTML. - Closes #607. - + Don't include empty captions in figures. Closes #581. - - * LaTeX writer: - - + Use `\hspace*` for nonbreaking space after line break, - since `~` spaces after a line break are just ignored. - Closes #687. - + Don't escape `_` in URLs or hyperref identifiers. - + Properly escape strings inside \url{}. Closes #576. - + Use `[fragile]` only for slides containing code rendered - using listings. Closes #649. - + Escape `|` as `\vert` in LaTeX math. This avoids a clash with - highlighting-kate's macros, which redefine `|` as a short verbatim - delimiter. Thanks to Björn Peemöller for raising this issue. - + Use minipage rather than parbox for block containers in tables. - This allows verbatim code to be included in grid tables. - Closes #663. - + Prevent paragraphs containing only linebreaks or spaces. - - * HTML writer: - - + Included `highlighting-css` for code spans, too. - Previously it was only included if used in a code block. Closes #653. - + Improved line breaks with `<dd>` tags. We now put a newline between - `</dd>` and `<dd>` when there are multiple definitions. - + Changed mathjax cdn url so it doesn't use https. (This caused - problems when used with `--self-contained`.) See #609. - - * EPUB writer: - - + `--number-sections` now works properly. - + Don't strip meta and link elements in epub metadata. - Patch from aberrancy. Closes #589. - + Fixed a couple validation bugs. - + Use ch001, ch002, etc. for chapter filenames. This improves sorting - of chapters in some readers, which apparently sort ch2 after ch10. - Closes #610. - - * ODT writer: properly set title property (Arlo O'Keeffe). - - * Docx writer: - - + Fixed bug with nested lists. Previously a list like - - 1. one - - a - - b - 2. two - - would come out with a bullet instead of "2." - Thanks to Russell Allen for reporting the bug. - + Use `w:cr` in `w:r` instead of `w:br` for linebreaks. - This seems to fix a problem viewing pandoc-generated - docx files in LibreOffice. - + Use integer ids for bookmarks. Closes #626. - + Added nsid to abstractNum elements. This helps when merging - word documents with numbered or bulleted lists. Closes #627. - + Use separate footnotes.xml for notes. - This seems to help LibreOffice convert the file, even though - it was valid docx before. Closes #637. - + Use rIdNN identifiers for r:embed in images. - + Avoid reading image files again when we've already processed them. - + Fixed typo in `referenc.docx` that prevented image captions from - working. Thanks to Huashan Chen. - - * `Text.Pandoc.Parsing`: - - + Fixed bug in `withRaw`, which didn't correctly handle the case - where nothing is parsed. - + Made `emailAddress` parser more correct. Now it is based on RFC 822, - though it still doesn't implement quoted strings in email addresses. - + Revised URI parser. It now allows many more schemes, allows - uppercase URIs, and better handles trailing punctuation and - trailing slashes in bare URIs. Added many tests. - + Simplified and improved singleQuoteStart. This makes `'s'`, `'l'`, - etc. parse properly. Formerly we had some English-centric heuristics, - but they are no longer needed. Closes #698. - - * `Text.Pandoc.Pretty`: Added wide punctuation range to `charWidth`. - This fixes bug with Chinese commas in markdown and reST tables, and - a bug that caused combining characters to be dropped. - - * `Text.Pandoc.MIME`: Added MIME types for .wof and .eot. Closes #640. - - * `Text.Pandoc.Biblio`: - - + Run `mvPunc` and `deNote` on metadata too. - This fixed a bug with notes on titles using footnote styles. - + Fixed bug in fetching CSL files from CSL data directory. - - * `pandoc.hs`: Give correct value to `writerSourceDirectory` when a URL - is provided. It should be the URL up to the path. - - * Fixed/simplified diff output for tests. - Biblio: Make sure mvPunc and deNote run on metadata too. - This fixed a bug with notes on titles using footnote styles. - - [under the hood improvements] - - * We no longer depend on `utf8-string`. Instead we use functions - defined in `Text.Pandoc.UTF8` that use `Data.Text`'s conversions. - - * Use `safeRead` instead of using `reads` directly (various modules). - - * "Implicit figures" (images alone in a paragraph) are now handled - differently. The markdown reader gives their titles the prefix `fig:`; the - writers look for this before treating the image as a figure. Though this - is a bit of a hack, it has two advantages: (i) implicit figures can be - limited to the markdown reader, and (ii) they can be deactivated by turning - off the `implicit_figures` extension. - - * `catch` from `Control.Exception` is now used instead of the - old Preface `catch`. - - * `Text.Pandoc.Shared`: Improved algorithm for `normalizeSpaces` - and `oneOfStrings` (which is now non-backtracking). - - * `Text.Pandoc.Biblio`: Remove workaround for `toCapital`. - Now citeproc-hs is fixed upstream, so this is no longer needed. - Closes #531. - - * Textile reader: Improved speed of `hyphenedWords`. - This speeds up the textile reader by about a factor of 4. - - * Use `Text.Pandoc.Builder` in RST reader, for more flexibility, - better performance, and automatic normalization. - - * Major rewrite of markdown reader: - - + Use `Text.Pandoc.Builder` instead of lists. This also - means that everything is normalized automatically. - + Move to a one-pass parsing strategy, returning values in the reader - monad, which are then run (at the end of parsing) against the final - parser state. - - * In HTML writer, we now use `toHtml` instead of pre-escaping. - We work around the problem that blaze-html unnecessarily escapes `'` - by pre-escaping just the `'` characters, instead of the whole string. - If blaze-html later stops escaping `'` characters, we can simplify - `strToHtml` to `toHtml`. Closes #629. - - * Moved code for embedding images in RTFs from `pandoc.hs` to the - RTF writer (which now exports `writeRTFWithEmbeddedImages`). - - * Moved citation processing from `pandoc.hs` into the readers. - This makes things more convenient for library users. - - * The man pages are now built by an executable `make-pandoc-man-pages`, - which has its own stanza in the cabal file so that dependencies can be - handled by Cabal. Special treatment in `Setup.hs` ensures that this - executable never gets installed; it is only used to create the man pages. - - * The cabal file has been modified so that the pandoc library is used - in building the pandoc executable. (This required moving `pandoc.hs` - from `src` to `.`.) This cuts compile time in half. - - * `-O2` is no longer used in building pandoc. The performance improvement - it yields is so slight that it is not worth it. (Measured with - benchmarks on ghc 7.4.) - - * The `executable` and `library` flags have been removed. - - * `-threaded` has been removed from ghc-options. - - * Version bounds of dependencies have been raised, and the - `blaze_html_0_5` flag now defaults to True. Pandoc now compiles on - GHC 7.6. - - * We now require base >= 4.2. - - * Integrated the benchmark program into cabal. One can now do: - - cabal configure --enable-benchmarks && cabal build - cabal bench --benchmark-option='markdown' --benchmark-option='-s 20' - - The benchmark now uses README + testsuite, so benchmark results - from older versions aren't comparable. - - * Integrated test suite with cabal. - To run tests, configure with `--enable-tests`, then `cabal test`. - You can specify particular tests using `--test-options='-t markdown'`. - No output is shown unless tests fail. The Haskell test modules - have been moved from `src/` to `tests/`. - - * Moved all data files and templates to the `data/` subdirectory. - - * Added an `embed_data_files` cabal flag. This causes all - data files to be embedded in the binary, so that the binary - is self-sufficient and can be relocated anywhere, copied on - a USB key, etc. The Windows installer now uses this. - (Since we no longer have the option to build the executable - without the library, this is the only way to get a relocatable - binary on Windows.) - - * Removed pcre3.dll from windows package. - It isn't needed unless highlighting-kate is compilled with the - `pcre-light` flag. By default, regex-prce-builtin is used. - - -pandoc (1.9.4.2) - - * Don't encode/decode file paths if base >= 4.4. - Prior to base 4.4, filepaths and command line arguments were treated - as unencoded lists of bytes, not unicode strings, so we had to work - around that by encoding and decoding them. This commit adds CPP - checks for the base version that intelligibly enable encoding/decoding - when needed. Fixes a bug with multilingual filenames when pandoc was - compiled with ghc 7.4 (#540). - - * Don't generate an empty H1 after hrule slide breaks. - We now use a slide-level header with contents `[Str "\0"]` to mark - an hrule break. This avoids creation of an empty H1 in these - contexts. Closes #484. - - * Docbook reader: Added support for "bold" emphasis. Thanks to Mauro Bieg. - - * In make_osx_package.sh, ensure citeproc-hs is built with the - embed_data_files flag. - - * MediaWiki writer: Avoid extra blank lines after sublists (Gavin Beatty). - - * ConTeXt writer: Don't escape `&`, `^`, `<`, `>`, `_`, - simplified escapes for `}` and `{` to `\{` and `\}` (Aditya Mahajan). - - * Fixed handling of absolute URLs in CSS imports with `--self-contained`. - Closes #535. - - * Added webm to mime types. Closes #543. - - * Added some missing exports and tests to the cabal file - (Alexander V Vershilov). - - * Compile with `-rtsopts` and `-threaded` by default. - -pandoc (1.9.4.1) - - * Markdown reader: Added `cf.` and `cp.` to list of likely abbreviations. - - * LaTeX template: Added `linkcolor`, `urlcolor` and `links-as-notes` - variables. Make TOC links black. - - * LaTeX template improvements. - - + Don't print date unless one is given explicitly in the document. - + Simplified templates. - + Use fontenc [T1] by default, and lmodern. - + Use microtype if available. - - * Biblio: - - + Add comma to beginning of bare suffix, e.g. `@item1 [50]`. - Motivation: `@item1 [50]` should be as close as possible to - `[@item1, 50]`. - + Added workaround for a bug in citeproc-hs 0.3.4 that causes footnotes - beginning with a citation to be empty. Closes #531. - - * Fixed documentation on mixed lists. Closes #533. - -pandoc (1.9.4) - - * Simplified `Text.Pandoc.Biblio` and fixed bugs with citations inside - footnotes and captions. We now handle note citations by inserting - footnotes during initial citation processing, and doing a separate - pass later to remove notes inside notes. - - * Added 'zenburn' highlight style from highlighting-kate. - - * Added Slideous writer. Slideous is an HTML + javascript slide show - format, similar to Slidy, but works with IE 7. (Jonas Smedegaard) - - * LaTeX writer: - - + Ensure we don't have extra blank lines at ends of cells. - This can cause LaTeX errors, as they are interpreted as new paragraphs. - + More consistent interblock spacing. - + Require highlighting-kate >= 0.5.1, for proper highlighted inline - code in LaTeX. Closes #527. - + Ensure that a Verbatim at the end of a footnote is followed by - a newline. (Fixes a regression in the previous version.) - + In default template, use black for internal links and TOC. - Added commented-out code to use footnotes for links, as would - be suitable in print output. - - * Beamer writer: When `--incremental` is used, lists inside - a block quote should appear all at once. (This makes Beamer - output consistent with the HTML slide show formats.) - - * ConTeXt writer: - - + Escape `%` as `\letterpercent{}` not `\letterpercent `, - to avoid gobbling spaces after the `%` sign. - + Ensure space after `\stopformula`. - - * Markdown writer: - - + Use `:` form instead of `~` in definition lists, for better - compatibility with other markdown implementations. - + Don't wrap the term, because it breaks definition lists. - + Use a nonzero space to prevent false recognition - of list marker in ordered lists. Closes #516. - - * Org writer: Add space before language name. Closes #523. - - * Docx writer: Simplified bullet characters so they work properly - with Word 2007. Closes #520. - - * LaTeX reader: Support `\centerline`. - - * RST reader: handle figures. Closes #522. - - * Textile reader: fix for `<notextile>` and `==`. Closes #517. - (Paul Rivier) - -pandoc (1.9.3) - - * Fixed bug in `fromEntities`. The previous version would turn - `hi & low you know;` into `hi &`. - - * HTML reader: - - + Don't skip nonbreaking spaces. - Previously a paragraph containing just ` ` would be rendered - as an empty paragraph. Thanks to Paul Vorbach for pointing out the bug. - + Support `<col>` and `<caption>` in tables. Closes #486. - - * Markdown reader: - - + Don't recognize references inside delimited code blocks. - + Allow list items to begin with lists. - - * Added basic docbook reader (John MacFarlane and Mauro Bieg). - - * LaTeX reader: - - + Handle `\bgroup`, `\egroup`, `\begingroup`, `\endgroup`. - + Control sequences can't be followed by a letter. - This fixes a bug where `\begingroup` was parsed as `\begin` - followed by `group`. - + Parse 'dimension' arguments to unknown commands. e.g. `\parindent0pt` - + Make `\label` and `\ref` sensitive to `--parse-raw`. - If `--parse-raw` is selected, these will be parsed as raw latex - inlines, rather than bracketed text. - + Don't crash on unknown block commands (like `\vspace{10pt}`) - inside `\author`; just skip them. Closes #505. - - * Textile reader: - - + Implemented literal escapes with `==` and `<notextile>`. Closes #473. - + Added support for LaTeX blocks and inlines (Paul Rivier). - + Better conformance to RedCloth inline parsing (Paul Rivier). - + Parse '+text+' as emphasized (should be underlined, but this - is better than leaving literal plus characters in the output. - - * Docx writer: Fixed multi-paragraph list items. Previously they each - got a list marker. Closes #457. - - * LaTeX writer: - - + Added `--no-tex-ligatures` option to avoid replacing - quotation marks and dashes with TeX ligatures. - + Use `fixltx2e` package to provide '\textsubscript'. - + Improve spacing around LaTeX block environments: - quote, verbatim, itemize, description, enumerate. - Closes #502. - + Use blue instead of pink for URL links in latex/pdf output. - - * ConTeXt writer: Fixed escaping of `%`. - In text, `%` needs to be escaped as `\letterpercent`, not `\%` - Inside URLs, `%` needs to be escaped as `\%` - Thanks to jmarca and adityam for the fix. Closes #492. - - * Texinfo writer: Escape special characters in node titles. - This fixes a problem pointed out by Joost Kremers. Pandoc used - to escape an '@' in a chapter title, but not in the corresponding - node title, leading to invalid texinfo. - - * Fixed document encoding in texinfo template. - Resolves Debian Bug #667816. - - * Markdown writer: - - + Don't force delimited code blocks to be flush left. - Fixes bug with delimited code blocks inside lists etc. - + Escape `<` and `$`. - - * LaTeX writer: Use `\hyperref[ident]{text}` for internal links. - Previously we used `\href{\#ident}{text}`, which didn't work on - all systems. Thanks to Dirk Laurie. - - * RST writer: Don't wrap link references. Closes #487. - - * Updated to use latest versions of blaze-html, mtl. - - -pandoc (1.9.2) - - * LaTeX reader: - - + Made `lstlisting` work as a proper verbatim environment. - + Fixed bug parsing LaTeX tables with one column. - - * LaTeX writer: - - + Use `{}` around `ctable` caption, so that formatting can be used. - + Don't require eurosym package unless document has a €. - - * LaTeX template: Added variables for `geometry`, `romanfont`, - `sansfont`, `mathfont`, `mainfont` so users can more easily - customize fonts. - - * PDF writer: - - + Run latex engine at least two times, to ensure - that PDFs will have hyperlinked bookmarks. - + Added PDF metadata (title,author) in LaTeX standalone + PDF output. - - * Texinfo writer: retain directories in image paths. (Peter Wang) - - * RST writer: Better handling of inline formatting, in accord - with docutils' "inline markup recognition rules" (though we don't - implement the unicode rules fully). Now `hi*there*hi` gets - rendered properly as `hi\ *there*\ hi`, and unnecessary - `\ ` are avoided around `:math:`, `:sub:`, `:sup:`. - - * RST reader: - - + Parse `\ ` as null, not escaped space. - + Allow `` :math:`...` `` even when not followed by blank - or `\`. This does not implement the complex rule docutils follows, - but it should be good enough for most purposes. - + Add support for the rST default-role directive. (Greg Maslov) - - * Text.Pandoc.Parsing: Added `stateRstDefaultRole` field to `ParserState`. - (Greg Maslov) - - * Markdown reader: Properly handle citations nested in other inline - elements. - - * Markdown writer: don't replace empty alt in image with "image". - - * DZSlides: Updated template.html and styles in default template. - Removed bizarre CSS for `q` in dzslides template. - - * Avoid repeated `id` attribute in section and header in HTML slides. - - * README improvements: new instructions on internal links, - removed misleading note on reST math. - - * Build system: - - + Fixed Windows installer so that dzslides works. - + Removed stripansi.sh. - + Added .travis.yml for Travis continuous integration support.. - + Fixed upper bound for zlib (Sergei Trofimovich). - + Fixed upper bound for test-framework. - + Updated haddocks for haddock-2.10 (Sergei Trofimovich). - -pandoc (1.9.1.2) - - * Added `beamer+lhs` as output format. - - * Don't escape `<` in `<style>` tags with `--self-contained`. - This fixes a bug which prevented highlighting from working - when using `--self-contained`. - - * PDF: run latex engine three times if `--toc` specified. - This fixes page numbers in the table of contents. - - * Docx writer: Added TableNormal style to tables. - - * LaTeX math environment fixes. `aligned` is now used instead of - the nonexistent `aligned*`. `multline` instead of the nonexistent - `multiline`. - - * LaTeX writer: Use `\textasciitilde` for literal `~`. - - * HTML writer: Don't escape contents of EQ tags with --gladtex. - This fixes a regression from 1.8. - - * Use `<q>` tags for Quoted items for HTML5 output. - The quote style can be changed by modifying the template - or including a css file. A default quote style is included. - - * LaTeX reader: Fixed accents (\~{a}, `\c{c}`). - Correctly handle \^{}. Support "minted" as a LaTeX verbatim block. - - * Updated LaTeX template for better language support. - Use `polyglossia` instead of `babel` with xetex. - Set `lang` as documentclass option. - `\setmainlanguage` will use the last of a comma-separated - list of languages. Thanks to François Gannaz. - - * Fixed default LaTeX template so `\euro` and `€` work. The - `eurosym` package is needed if you are using pdflatex. - - * Fixed escaping of period in man writer (thanks to Michael Thompson). - - * Fixed list label positions in beamer. - - * Set `mainlang` variable in context writer. - This parallels behavior of latex writer. `mainlang` is the last - of a comma-separated list of languages in lang. - - * EPUB language metadat: convert e.g. `en_US` from locale to `en-US`. - - * Changed `-V` so that you can specify a key without a value. - Such keys get the value `true`. - - * Fixed permissions on installed man pages - thanks Magnus Therning. - - * Windows installer: require XP or higher. The installer is - now compiled on a Windows 7 machine, which fixes a problem - using citation functions on Windows 7. - - * OSX package: Check for 64-bit Intel CPU before installing. - -pandoc (1.9.1.1) - - * Better handling of raw latex environments in markdown. Now - - \begin{equation} - a_1 - \end{equation} - - turns into a raw latex block as expected. - - * Improvements to LaTeX reader: - - + Skip options after block commands. - + Correctly handle `{\\}` in braced. - + Added a needed 'try'. - + Citations: add `, ` to suffix if it doesn't start with space or - punctuation. Otherwise we get no space between the year and the - suffix in author-date styles. - - * Added two needed data files for S5. This fixes a problem with - `pandoc -t s5 --self-contained`. Also removed `slides.min.js`, - which was no longer being used. - - * Fixed some minor problems in `reference.docx`: - name on "Date" style, `xCs` instead of `xIs`. - - * Fixed a problem creating docx files using a reference docx - modified using Word. The problem seems to be that Word - modifies `_rels/.rels`, changing the Type of the Relationship to - `docProps/core.xml`. Pandoc now changes this back to the correct - value if it has been altered, fixing the problem. - - * Fixed html5 template so it works properly with highlighting. - -pandoc (1.9.1) - - * LaTeX reader: - - + Fixed regression in 1.9; properly handle escaped $ in latex math. - + Put LaTeX verse environments in blockquotes. - - * Markdown reader: - - + Limit nesting of strong/emph. This avoids exponential lookahead - in parasitic cases, like `a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**`. - + Improved attributes syntax (inn code blocks/spans): - (1) Attributes can contain line breaks. (2) Values in key-value - attributes can be surrounded by either double or single quotes, or - left unquoted if they contain no spaces. - - * Don't wrap headers in markdown or RST writers. - - * Added `stateMaxNestingLevel` to `ParserState`. - We set this to 6, so you can still have `Emph` inside `Emph`, - just not indefinitely. - - * More efficient implementation of `nowrap` in `Text.Pandoc.Pretty`. - - * `Text.Pandoc.PDF`: Only run latex twice if `\tableofcontents` - is present. - - * Require highlighting-kate >= 0.5.0.2, texmath >= 0.6.0.2. - -pandoc (1.9.0.5) - - * Changed cabal file so that build-depends for the test program - are not required unless the tests flag is used. - - * LaTeX writer: insert `{}` between adjacent hyphens so they don't - form ligatures (dashes) in code spans. - -pandoc (1.9.0.4) - - * Raised version bound on test-framework to avoid problems - compiling tests on GHC 7.4.1. - - * LaTeX reader: Use raw LaTeX as fallback inline text for Cites, - so citations don't just disappear unless you process with - citeproc. Ignore `\bibliographystyle`, `\nocite`. - - * Simplified tex2pdf; it will always run latex twice to - resolve table of contents and hyperrefs. - -pandoc (1.9.0.3) - - * Require Cabal >= 1.10. - * Tweaked cabal file to meet Cabal 1.10 requirements. - -pandoc (1.9.0.2) - - * Allow build with json 0.4 or 0.5. Otherwise we can't build with - ghc 6.12. - -pandoc (1.9) - - [new features] - - * Added a Microsoft Word `docx` writer. The writer includes support - for highlighted code and for math (which is converted from TeX to OMML, - Office's native math markup language, using texmath's new OMML module). - A new option `--reference-docx` allows the user to customize the - styles. - - * Added an `asciidoc` writer (<http://www.methods.co.nz/asciidoc/>). - - * Better support for slide shows: - - + Added a `dzslides` writer. DZSlides is a lightweight HTML5/javascript - slide show format due to Paul Rouget (<http://paulrouget.com/dzslides/>). - - + Added a LaTeX `beamer` writer. Beamer is a LaTeX package for creating - slide presentations. - - + New, flexible rules for dividing documents into sections and slides - (see the "Structuring the slide show" in the User's Guide). These - are backward-compatible with the old rules, but they allow slide - shows to be organized into sections and subsections containing - multiple slides. - - + A new `--slide-level` option allows users to override defaults - and select a slide level below the first header level with content. - - * A new `--self-contained` option produces HTML output that does not - depend on an internet connection or the presence of any external - files. Linked images, CSS, and javascript is downloaded (or fetched - locally) and encoded in `data:` URIs. This is useful for making portable - `HTML slide shows. The --offline` option has been deprecated and is now - `treated as a synonym or --self-contained`. - - * Support for PDF output: - - + Removed the old `markdown2pdf`. - + `pandoc` can now create PDFs (assuming you have latex and a set of - appropriate packages installed): just specify an output file with the - `.pdf` extension. - + A new option `--latex-engine` allows you to specify `pdflatex`, - `xelatex`, or `lualatex` as the processor. - - * Highlighting changes: - - + Syntax highlighting is now a standard feature; the `highlighting` - flag is no longer needed when compiling. - + A new `--no-highlight` option allows highlighting to be disabled. - + Highlighting now works in `docx`, `latex`, and `epub`, as well as - `html`, `html5`, `dzslides`, `s5`, and `slidy`. - + A new `--highlight-style` option selects between various highlighting - color themes. - - * Internal links to sections now work in ConTeXt and LaTeX as well as HTML. - - * LaTeX `\include` and `\usepackage` commands are now processed, - provided the files are in the working directory. - - * EPUB improvements: - - + Internal and external links now work in EPUB. - + Raw HTML is allowed. - + New `--epub-embed-font` option. - + Customizable templates for EPUB pages offer more control over - formatting: `epub-page.html`, `epub-coverimage.html`, - `epub-titlepage.html`. - - * `--mathml` now works with DocBook. - - * Added support for math in RST reader and writer. Inline math uses the - `` :math:`...` `` construct. Display math uses - - .. math:: ... - - or if the math is multiline, - - .. math:: - - ... - - These constructions are now supported now by `rst2latex.py`. - - * GitHub syntax for fenced code blocks is supported in pandoc's - markdown. You can now write - - ```ruby - x = 2 - ``` - - instead of - - ~~~ {.ruby} - x = 2 - ~~~~ - - * Easier scripting: a new `toJsonFilter` function makes it easier to - write Haskell scripts to manipulate the Pandoc AST. - - [behavior changes] - - * Fixed parsing of consecutive lists in markdown. - Pandoc previously behaved like Markdown.pl for consecutive - lists of different styles. Thus, the following would be parsed - as a single ordered list, rather than an ordered list followed - by an unordered list: - - 1. one - 2. two - - - one - - two - - This change makes pandoc behave more sensibly, parsing this as - two lists. Any change in list type (ordered/unordered) or in - list number style will trigger a new list. Thus, the following - will also be parsed as two lists: - - 1. one - 2. two - - a. one - b. two - - Since we regard this as a bug in Markdown.pl, and not something - anyone would ever rely on, we do not preserve the old behavior - even when `--strict` is selected. - - * Dashes work differently with `--smart`: `---` is always em-dash, - and `--` is always en-dash. Pandoc no longer tries to guess when - `-` should be en-dash. *Note:* This may change how existing documents - look when processed with pandoc. A new option, `--old-dashes`, - is provided for legacy documents. - - * The markdown writer now uses setext headers for levels 1-2. - The old behavior (ATX headers for all levels) can be restored - using the new `--atx-headers` option. - - * Links are now allowed in markdown image captions. They are also - allowed in links, but will appear there as regular text. So, - - [link with [link](/url)](/url) - - will turn into - - <p><a href="/url">link with link</a></p> - - * Improved handling of citations using `citeproc-hs-0.3.4`. - Added `--citation-abbreviations` option. - - * Citation keys can no longer end with a punctuation character. - This means that `@item1.` will be parsed as a citation with key - 'item1', followed by a period, instead of a citation with key - 'item1.', as was the case previously. - - * In HTML output, citations are now put in a span with class `citation`. - - * The markdown reader now recognizes DocBook block and inline tags. - It was always possible to include raw DocBook tags in a markdown - document, but now pandoc will be able to distinguish block from - inline tags and behave accordingly. Thus, for example, - - <sidebar> - hello - </sidebar> - - will not be wrapped in `<para>` tags. - - * The LaTeX parser has been completely rewritten; it is now much more - accurate, robust, and extensible. However, there are two important - changes in how it treats unknown LaTeX. (1) Previously, unknown - environments became BlockQuote elements; now, they are treated - as "transparent", so `\begin{unknown}xyz\end{unknown}` is the - same as `xyz`. (2) Previously, arguments of unknown commands - were passed through with their braces; now the braces are stripped - off. - - * `--smart` is no longer selected automatically with `man` output. - - * The deprecated `--xetex` option has been removed. - - * The `--html5`/`-5` option has been deprecated. Use `-t html5` - instead. `html5` and `html5+lhs` are now separate output formats. - - * Single quotes are no longer escaped in HTML output. They do not - need to be escaped outside of attributes. - - * Pandoc will no longer transform leading newlines in code - blocks to `<br/>` tags. - - * The ODT writer now sizes images appropriately, using the image - size and DPI information embedded in the image. - - * `--standalone` is once again implicitly for a non-text output format - (ODT, EPUB). You can again do `pandoc test.txt -o test.odt` - and get a standalone ODT file. - - * The Docbook writer now uses `<sect1>`, `<sect2>`, etc. instead of - `<section>`. - - * The HTML writer now uses `<del>` for strikeout. - - * In HTML output with `--section-divs`, the classes `section` and - `level[1,2,..6]` are put on the `div` tags so they can be styled. - In HTML 5 output with `--section-divs`, the classes - `level[1,2,...6]` are put on `section` tags. - - * EPUB writer changes: - - + The `lang` variable now sets the language - in the metadata (if it is not set, we default to the locale). - + EPUB: UTF-8 is used rather than decimal entities. - - * Added `titleslide` class to title slide in S5 template. - - * In HTML, EPUB, and docx metadata, the date is normalized into - YYYY-MM-DD format if possible. (This is required for validation.) - - * Attributes in highlighted code blocks are now preserved in HTML. - The container element will have the classes, id, and key-value attributes - you specified in the delimited code block. Previously these were stripped - off. - - * The reference backlink in the HTML writer no longer has a special - `footnoteBacklink` class. - - * The HTML template has been split into `html` and `html5` templates. - - * Author and date are treated more consistently in HTML templates. - Authors are now `<h2>`, date `<h3>`. - - * URLs are hyphenated in the ConTeXt writer (B. Scott Michel). - - * In `Text.Pandoc.Builder`, `+++` has been replaced by `<>`. - - [bug fixes] - - * Better support for combining characters and East Asian wide characters - in markdown and reST. - - * Better handling of single quotes with `--smart`. - Previously `D'oh l'*aide*` would be parsed with left and right single - quotes instead of apostrophes. This kind of error is now fixed. - - * Highlighting: Use `reads` instead of `read` for better error handling. - Fixes crash on `startNum="abc"`. - - * Added blank comment after directives in rst template. - - * Unescape entities in citation `refId`. The `refId`s coming - from citeproc contain XML numeric entities, and these don't match with the - citation keys parsed by pandoc. Solution is to unescape them. - - * HTML reader: Fixed bug parsing tables with both thead and tbody. - - * Markdown reader: - - + Better handling of escapes in link URLs and titles. - + Fixed backslash escapes in reference links. - + Fixed bug in table/hrule parsing, by checking that the top - line of a table is not followed by a blank line. This bug caused - slowdowns on some files with hrules and tables, as pandoc tried to - interpret the hrules as the tops of multiline tables. - + Fixed bug in code block attribute parser. Previously the ID attribute - got lost if it didn't come first. Now attributes can come in any order. - - * RST reader: allow footnotes followed by newline without space characters. - - * LaTeX reader: - - + Ignore empty groups {}, { }. - + LaTeX reader: Handle \@. - + LaTeX reader: Don't crash on commands like `\itemsep`. - + LaTeX reader: Better handling of letter environments. - - * RST writer: Fixed bug involving empty table cells. isSimple was being - calculated in a way that assumed there were no non-empty cells. - - * ConTeXt writer: - - + Made `--toc` work even without `--number-sections`. - + Escape # in link URLs. - + Use buffering for footnotes containing code blocks. - + Changed 'descr' to 'description', fixed alignment. - - * LaTeX writer: - - + Escape euro character. - + Don't escape ~ inside href{...}. - + Escape # in href URLs. - + Improved detection of book classes. We now check the - `documentclass` variable, and if that is not set, we look through - the template itself. Also, we have added the KOMA classes scrreprt - and scrbook. You can now make a book using - `pandoc -V documentclass:book mybook.txt -o mybook.pdf` - + LHS files now set the "listings" variable, so that the definition - of the `code` environment will be included in the template. - + Links are colored blue by default (this can be changed by - modifying `hyperref` settings in the template). - + Added `lang` variable to LaTeX template. - - * HTML writer: - - + Fixed bug in HTML template with html5 and mathml. - + Don't use self-closing img, br, hr tags for HTML5. - + Use `<section>` for footnotes if HTML5. - + Update HTML templates to use Content-Style-Type meta tag. - + Use separate variables for meta-date, meta-author. - This makes footnotes work in author and date fields. - + Use 'vertical-align:middle' in WebTeX math for better alignment. - - * S5/slidy writer: Make footnotes appear on separate slide at end. - - * MIME: Added 'layout-cache' to getMimeType. This ensures that the - META-INF/manifest.xml for ODT files will have everything it needs, so - that ODT files modified by LibreOffice can be used as `--reference-odt`. - - * `Text.Pandoc.Templates`: Return empty string for json template. - - * `Text.Pandoc.Biblio`: - - + Expand citations recursively inside nested inlines. - + Treat `\160` as space when parsing locator and suffix. - This fixes a bug with "p. 33" when `--smart` is used. Previously - the whole "p. 33" would be included in the suffix, with no locator. - + Put whole author-in-text citation in a Cite. Previously just the - date and other info went in the Cite. - + Don't add comma+space to prefix if it ends in punctuation. - - * Updated chicago-author-date.csl. The old version did not work - properly for edited volumes with no author. - - * EPUB writer: - - + Add date to EPUB titlepage and metadata. - + Added TOC identifier in EPUB page template. - + Don't generate superfluous file `cover-image.jpg`. - - [under the hood improvements] - - * Modified `make_osx_package.sh` to use cabal-dev. - Items are no longer installed as root. - Man pages are zipped and given proper permissions. - - * Modified windows installer generator to use cabal-dev. - - * Setup: Making man pages now works with cabal-dev (at least on OSX). In - Setup.hs we now invoke 'runghc' in a way that points it to the correct - package databases, instead of always falling back to the default user - package db. - - * Updated to work with GHC 7.4.1. - - * Removed dependency on old-time. - - * Removed dependency on dlist. - - * New slidy directory for "self-contained." - - * TeXMath writer: Use unicode thin spaces for thin spaces. - - * Markdown citations: don't strip off initial space in locator. - - [API changes] - - * Removed `Apostrophe`, `EmDash`, `EnDash`, and `Ellipses` - from the native `Inline` type in pandoc-types. Now we use `Str` - elements with unicode. - - * Improvements to `Text.Pandoc.Builder`: - - + `Inlines` and `Blocks` are now newtypes (not synonyms for - sequences). - + Instances are defined for `IsString`, `Show`, `Read`, `Monoid`, - and a new `Listable` class, which allows these to be manipulated - to some extent like lists. Monoid append includes automatic - normalization. - + `+++` has been replaced by `<>` (mappend). - - * Use blaze-html instead of xhtml for HTML generation. - This changes the type of `writeHtml`. - - * `Text.Pandoc.Shared`: - - + Added `warn` and `err`. - + Removed `unescapeURI`, modified `escapeURI`. - (See under [behavior changes], above.) - - * Changes in URI escaping: Previously the readers escaped URIs by - converting unicode characters to octets and then percent encoding. - Now unicode characters are left as they are, and `escapeURI` only - percent-encodes space characters. This gives more readable - URIs, and works well with modern user agents. URIs are no longer unescaped - at all on conversion to `markdown`, `asciidoc`, `rst`, `org`. - - * New module `Text.Pandoc.SelfContained`. - - * New module `Text.Pandoc.Docx`. - - * New module `Text.Pandoc.PDF`. - - * Added `writerBeamer` to `WriterOptions`. - - * Added `normalizeDate` to `Text.Pandoc.Shared`. - - * Added `splitStringWithIndices` in `Text.Pandoc.Shared`. - This is like `splitWithIndices`, but it is sensitive to distinctions - between wide, combining, and regular characters. - - * `Text.Pandoc.Pretty`: - - + Added `chomp` combinator. - + Added `beforeNonBreak` combinator. This allows you to include - something conditionally on it being before a nonblank. - Used for RST inline math. - + Added `charWidth` function. All characters marked W or F in the unicode - spec EastAsianWidth.txt get width 2. - + Added `realLength`, based on `charWidth`. `realLength` is now - used in calculating offsets. - - * New module `Text.Pandoc.Slides`, for common functions for breaking - a document into slides. - - * Removed `Text.Pandoc.S5`, which is no longer needed. - - * Removed `Text.Pandoc.CharacterReferences`. Moved - `characterReference` to `Text.Pandoc.Parsing`. - `decodeCharacterReferences` is replaced by `fromEntities` - in `Text.Pandoc.XML`. - - * Added `Text.Pandoc.ImageSize`. This is intened for use - in `docx` and `odt` writers, so the size and dpi of images - can be calculated. - - * Removed `writerAscii` in `WriterOptions`. - - * Added `writerHighlight` to `WriterOptions`. - - * Added `DZSlides` to `HTMLSlideVariant`. - - * `writeEPUB` has a new argument for font files to embed. - - * Added `stateLastStrPos` to `ParserState`. This lets us keep track - of whether we're parsing the position immediately after a regular - (non-space, non-symbol) string, which is useful for distinguishing - apostrophes from single quote starts. - - * `Text.Pandoc.Parsing`: - - + `escaped` now returns a `Char`. - + Removed `charsInBalanced'`, added a character parser as - a parameter of `charsInBalanced`. This is needed for - proper handling of escapes, etc. - + Added `withRaw`. - - * Added `toEntities` to `Text.Pandoc.XML`. - - * `Text.Pandoc.Readers.LaTeX`: - - + Export `handleIncludes`. - + Export `rawLaTeXBlock` instead of `rawLaTeXEnvironment'`. - - * Added `ToJsonFilter` class and `toJsonFilter` function to - `Text.Pandoc`, deprecating the old `jsonFilter` function. - - * `Text.Pandoc.Highlighting`: - - + Removed `highlightHtml`, `defaultHighlightingCss`. - + Export `formatLaTeXInline`, `formatLaTeXBlock`, and `highlight`, plus - key functions from highlighting-kate. - + Changed types of highlighting function. `highlight` returns a - `Maybe`, not an `Either`. - -pandoc (1.8.2.1) - - * Relaxed cabal consntraints for test-framework (S. Trofimovich). - - * Relaxed cabal constraints for pandoc-types. - - * Adjusted Arbitrary instance to help avoid timeouts in tests. - - * Added `Tests.Writers.Markdown` to cabal file. - -pandoc (1.8.2) - - * Added script to produce OS X package. - - * Made `templates` directory a git submodule. This should make it - easier for people to revise their custom templates when the default - templates change. - - * Changed template naming scheme: `FORMAT.template` -> `default.FORMAT`. - **Note:** If you have existing templates in `~/.pandoc/templates`, you - must rename them to conform to the new scheme! - - * Fixed smart quotes bug, now handling `'...hi'` properly. - - * RST reader: - - + Partial support for labeled footnotes. - + Improved accuracy of `simpleReferenceName` parser. - - * HTML reader: - - + Substitute correct unicode characters for - characters in the 128..159 range, which are often found even in - HTML that purports to be UTF-8. - - * LaTeX reader: Handle `\subtitle` command (a subtitle is added - to the title, after a colon and linebreak). Closes #280. - - * Leaner `reference.odt`. - - * Added unexported module `Text.Pandoc.MIME` for use in - the ODT writer. - - * ODT writer: Construct `manifest.xml` based on archive contents. - This fixes a bug in ODTs containing images. Recent versions of - LibreOffice would reject these as corrupt, because `manifest.xml` - did not contain a reference to the image files. - - * LaTeX writer: - - + Make verbatim environments flush to avoid spurious - blank lines. Closes #277. - + Use `\texttt` and escapes insntead of `\verb!...!`, which - is too fragile (doesn't work in command arguments). - + Use `\enquote{}` for quotes if the template includes - the `csquotes` package. This provides better support for - local quoting styles. (Thanks to Andreas Wagner for the idea.) - - * ConTeXt writer: Make `\starttyping`/`\stoptyping` flush with - margin, preventing spurious blank lines. - - * Slidy writer: - - + Use non-minimized version of `slidy.css` with `--offline` - option, so users can more easily edit it. - + Also fixed a bug in the CSS that prevented proper centering - of title (now reported and fixed upstream). - - * S5 writer: - - + Replaced `s5/default/slides.js.{comment,packed}` with - new compressed `s5/default/slides.min.js`. - + Use `data:` protocol to embed S5 CSS in `<link>` tags, - when `--offline` is specified. Using inline CSS didn't - work with Chrome or Safari. This fixes offline - S5 on those browsers. - - * HTML writer: Removed English title on footnote backlinks. - This is incongrous in non-English documents. - - * Docbook writer: - - + Use CALS tables. (Some older docbook software does not work - well with XHTML tables.) Closes #77. - + Use `programlisting` tags (instead of `screen`) for code blocks. - - * `markdown2pdf`: - - + Calls latex with `-halt-on-error -interaction nonstopmode` instead - of `-interaction=batchmode`, which essentially just ignored errors, - leading to bad results. Better to know when something is wrong. - + Fixed issues with non-UTF-8 output of `pdflatex`. - + Better error reporting. - - * `--mathjax` now takes an optional URL argument. If it is not - provided, pandoc links directly to the (secure) mathjax CDN, - as now recommended (thanks to dsanson). - - * Deprecated `--xetex` option in `pandoc`. It is no longer needed, - since the LaTeX writer now produces a file that can be processed by - `latex`, `pdflatex`, `lualatex`, or `xelatex`. - - * Introduced `--luatex` option to `markdown2pdf`. This causes `lualatex` - to be used to create the PDF. - - * If a template specified with `--template` is not found, look for it - in `datadir`. Also, if no extension is provided, supply one based - on the writer. So now you can put your `special.latex` template in - `~/.pandoc/templates`, and use it from any directory via - `pandoc -t latex --template special`. - - * Default template improvements: - - + HTML: Display author and date after title. - + HTML: Made table of contents more customizable. The container - for the TOC is now in the template, so users can insert a header - or other styling. (Thanks to Bruce D'Arcus for the suggestion.) - + HTML, Slidy, S5: Enclose scripts in CDATA tags. - + Slidy, S5: Added `s5-url` and `slidy-url` variables, instead of - hard-coding. If you want to put your slidy files in the slidy - subdirectory, for example, you can do - `pandoc -t slidy -V slidy-url=slidy -s`. - + LaTeX: Use `\and` to separate authors in LaTeX documents (reader - & writer). Closes #279. - + LaTeX: Use different `hyperref` options for `xetex`, fixing - problems with unicode bookmarks (thanks to CircleCode). - + LaTeX: Removed `ucs` package, use `utf8` rather than `utf8x` - with `inputenc`. This covers fewer characters but is more - robust with other packages, and `ucs` is unmaintained. Users - who need better unicode support should use xelatex or lualatex. - -pandoc (1.8.1.2) - - * Added `--epub-cover-image` option. - - * Documented `--biblatex` and `--natbib` options. - - * Allow `--section-divs` with slidy output. Resolves Issue #296. - - * Disallow notes within notes in reST and markdown. - These previously caused infinite looping and stack overflows. - For example: - - [^1] - - [^1]: See [^1] - - Note references are allowed in reST notes, so this isn't a full - implementation of reST. That can come later. For now we need to - prevent the stack overflows. Partially resolves Issue #297. - - * EPUB writer: Allow non-plain math methods. - - * Forbid ()s in citation item keys. Resolves Issue #304: problems with - `(@item1; @item2)` because the final paren was being parsed as part of - the item key. - - * Changed URI parser so it doesn't include trailing punctuation. - So, in RST, `http://google.com.` should be parsed as a link followed by a - period. The parser is smart enough to recognize balanced parentheses, as - often occur in wikipedia links: `http://foo.bar/baz_(bam)`. - - * Markdown+lhs reader: Require space after inverse bird tracks, so that - HTML tags can be used freely at the left margin of a markdown+lhs document. - Thanks to Conal Elliot for the suggestion. - - * Markdown reader: - - + Improved emph/strong parsing; fixes bug found by Perry Wagle. - + Fixed bug in footnote order (reported by CircleCode). - - * RST reader: - + Fixed bug in in field lists with multi-line items at the - end of the list. - + Added parentheses to RST `specialChars`, so - `(http://google.com)` will be parsed as a link in parens. - Resolves Issue #291. - + Allow `|` followed by newline in RST line block. - - * LaTeX reader: - + Support `\dots`. - + Gobble option & space after linebreak `\\[10pt]`. - - * Textile reader: - + Make it possible to have colons after links. (qerub) - + Make it possible to have colons after links. (Christoffer Sawicki) - - * HTML reader: - + Skip spaces after `<b>`, `<emph>`, etc. - + Handle tbody, thead in simple tables. Closes #274. - + Implicit `Para`s instead of `Plains` in some contexts. - - * OpenDocument writer: Use special `First paragraph` style for - first paragraph after most non-paragraph blocks. This allows users to - specify e.g. that only paragraphs after the first paragraph of a block are - to be indented. Thanks to Andrea Rossato for the patch. Closes #20. - - * LaTeX writer: use `deVerb` on table and picture captions. - Otherwise LaTeX complains about `\verb` inside command argument. - Thanks to bbanier for reporting the bug. - - * Markdown writer: Insert HTML comment btw list and indented code block. - This prevents the code block from being interpreted as part of the list. - - * EPUB writer: Add a meta element specify the cover. - Some EPUB e-readers, such as the Nook, require a meta element inside the - OPF metadata block to ensure the cover image is properly displayed. - (Kelsey Hightower) - - * HTML writer: Use embed tag for images with non-image extensions. - (e.g. PDFs). Closes #264. - - * LaTeX writer: Improved tables. - - + More space between lines, top-align cells. - + Use ctable package, which allows footnotes and - provides additional options. - + Made cell alignments work in multiline tables. - + Closes #271, #272. - - * Un-URI-escape image filenames in LaTeX, ConTeXt, RTF, Texinfo. - Also do this when copying image files into EPUBs and ODTs. - Closes #263. - - * Changed to github issue tracker. - - * Added failing emph/strong markdown test case due to Perry Wagle. - - * Slidy improvements: - + Updated to use Slidy2. - + Fixed bug, unclosed div tag. - + Added `duration` variable in template. - Setting this activates the timer. - + Use 'titlepage' instead of 'cover' for title div. - -pandoc (1.8.1.1) - - * `markdown2pdf`: Removed some debugging lines accidentally included - in the 1.8.1 release. With those lines, the temp directory is created - in the working directory, and it is not deleted. This fix restores - the original behavior. - -pandoc (1.8.1) - - * Added `--ascii` option. Currently supported only in HTML writer, - which it causes to use numerical entities instead of UTF-8. - - * EPUB writer: `--toc` now works to provide a table of contents - at the beginning of each chapter. - - * LaTeX writer: Change figure defaults to `htbp`. - This prevents "too many unprocessed floats." Resolves - Issue #285. - - * `Text.Pandoc.UTF8`: Encode filenames even when using recent - base. - - * `markdown2pdf`: Fixed filename encoding issues. With help from Paulo - Tanimoto. Resolves Issue #286. - - * HTML writer: Put line breaks in section divs. - - * `Text.Pandoc.Shared`: Make `writerSectionDivs` default to False. - -pandoc (1.8.0.3) - - * Fixed Source-repository stanza in cabal file. - -pandoc (1.8.0.2) - - * HTML writer: - - + Stringify alt text instead of converting to HTML. - + Break lines after block elements, not inside tags. - HTML output now closely resembles that of tidy. Resolves Issue #134. - - * Markdown reader: Fixed bug in footnote block parser (pointed out - by Jesse Rosenthal). The problem arose when the blank line - at the end of a footnote block contained indenting spaces. - - * Shared: Improved 'normalize' function so it normalizes Spaces too. - In normal form, Space elements only occur to separate two non-Space - elements. So, we never have [Space], or [, ..., Space]. - - * Tests: - - + Improved Arbitrary instance. - + Added timeout for test instances. - - * README: - - + Added section on four-space rule for lists. Resolves Issue #283. - + Clarified optional arguments on math options. - - * markdown2pdf: Fixed bug with output file extensions. - Previously `markdown2pdf test.txt -o test.en.pdf` would produce - `test.pdf`, not `test.en.pdf`. Thanks to Paolo Tanimoto for the fix. - -pandoc (1.8.0.1) - - * Revised Interact.hs so that it works with the CPP macros - in the UTF8 module. - - * Revised Setup.hs so that we don't call MakeManPage.hs unless - the man pages are out of date. - -pandoc (1.8) - - [new features] - - * Support for citations using Andrea Rossato's `citeproc-hs` 0.3. - You can now write, for example, - - Water is wet [see @doe99, pp. 33-35; also @smith04, ch. 1]. - - and, when you process your document using `pandoc`, specifying - a citation style using `--csl` and a bibliography using `--bibliography`, - the citation will be replaced by an appropriately formatted - citation, and a list of works cited will be added to the end - of the document. - - This means that you can switch effortlessly between different citation - and bibliography styles, including footnote, numerical, and author-date - formats. The bibliography can be in any of the following formats: MODS, - BibTeX, BibLaTeX, RIS, EndNote, EndNote XML, ISI, MEDLINE, Copac, or JSON. - See the README for further details. - - Citations are supported in the markdown reader, using a special - syntax, and in the LaTeX reader, using natbib or biblatex syntax. - (Thanks to Nathan Gass for the natbib and biblatex support.) - - * New `textile` reader and writer. Thanks to Paul Rivier for contributing - the `textile` reader, an almost complete implementation of the textile - syntax used by the ruby [RedCloth library](http://redcloth.org/textile). - Resolves Issue #51. - - * New `org` writer, for Emacs Org-mode, contributed by Puneeth Chaganti. - - * New `json` reader and writer, for reading and writing a JSON - representation of the native Pandoc AST. These are much faster - than the `native` reader and writer, and should be used for - serializing Pandoc to text. To convert between the JSON representation - and native Pandoc, use `encodeJSON` and `decodeJSON` from - `Text.JSON.Generic`. - - * A new `jsonFilter` function in `Text.Pandoc` makes it easy - to write scripts that transform a JSON-encoded pandoc document. - For example: - - -- removelinks.hs - removes links from document - import Text.Pandoc - main = interact $ jsonFilter $ bottomUp removeLink - where removeLink (Link xs _) = Emph xs - removeLink x = x - - To use this to remove links while translating markdown to LaTeX: - - pandoc -t json | runghc removelinks.hs | pandoc -f json -t latex - - * Attributes are now allowed in inline `Code` elements, for example: - - In this code, `ulist ! [theclass "special"] << elts`{.haskell} is... - - The attribute syntax is the same as for delimited code blocks. - `Code` inline has an extra argument place for attributes, just like - `CodeBlock`. Inline code will be highlighted in HTML output, if pandoc - is compiled with highlighting support. Resolves Issue #119. - - * New `RawBlock` and `RawInline` elements (replacing `RawHtml`, - `HtmlInline`, and `TeX`) provide lots of flexibility in writing - scripts to transform Pandoc documents. Scripts can now change - how each element is rendered in each output format. - - * You can now define LaTeX macros in markdown documents, and pandoc - will apply them to TeX math. For example, - - \newcommand{\plus}[2]{#1 + #2} - $\plus{3}{4}$ - - yields `3+4`. Since the macros are applied in the reader, they - will work in every output format, not just LaTeX. - - * LaTeX macros can also be used in LaTeX documents (both in math - and in non-math contexts). - - * A new `--mathjax` option has been added for displaying - math in HTML using MathJax. Resolves issue #259. - - * Footnotes are now supported in the RST reader. (Note, however, - that unlike docutils, pandoc ignores the numeral or symbol used in - the note; footnotes are put in an auto-numbered ordered list.) - Resolves Issue #258. - - * A new `--normalize` option causes pandoc to normalize the AST - before writing the document. This means that, for example, - `*hi**there*` will be rendered as `<em>hithere</em>` - instead of `<em>hi</em><em>there</em>`. This is not the default, - because there is a significant performance penalty. - - * A new `--chapters` command-line option causes headers - in DocBook, LaTeX, and ConTeXt to start with "chapter" (level one). - Resolves Issue #265. - - * In DocBook output, `<chapter>` is now used for top-level - headers if the template contains `<book>`. Resolves Issue #265. - - * A new `--listings` option in `pandoc` and `markdown2pdf` causes - the LaTeX writer to use the listings package for code blocks. - (Thanks to Josef Svennigsson for the pandoc patch, and Etienne - Millon for the markdown2pdf patch.) - - * `markdown2pdf` now supports `--data-dir`. - - * URLs in autolinks now have class "url" so they can be styled. - - * Improved prettyprinting in most formats. Lines will be wrapped - more evenly and duplicate blank lines avoided. - - * New `--columns` command-line option sets the column width for - line wrapping and relative width calculations for tables. - - * Made `--smart` work in HTML, RST, and Textile readers, as well - as markdown. - - * Added `--html5` option for HTML5 output. - - * Added support for listings package in LaTeX reader - (Puneeth Chaganti). - - * Added support for simple tables in the LaTeX reader. - - * Added support for simple tables in the HTML reader. - - * Significant performance improvements in many readers and writers. - - [API and program changes] - - * Moved `Text.Pandoc.Definition` from the `pandoc` package to a new - auxiliary package, `pandoc-types`. This will make it possible for other - programs to supply output in Pandoc format, without depending on the whole - pandoc package. - - * Added `Attr` field to `Code`. - - * Removed `RawHtml`, `HtmlInline`, and `TeX` elements; added generic - `RawBlock` and `RawInline`. - - * Moved generic functions to `Text.Pandoc.Generic`. Deprecated - `processWith`, replacing it with two functions, `bottomUp` and `topDown`. - Removed previously deprecated functions `processPandoc` and `queryPandoc`. - - * Added `Text.Pandoc.Builder`, for building `Pandoc` structures. - - * `Text.Pandoc` now exports association lists `readers` and `writers`. - - * Added `Text.Pandoc.Readers.Native`, which exports `readNative`. - `readNative` can now read full pandoc documents, block lists, blocks, - inline lists, or inlines. It will interpret `Str "hi"` - as if it were `Pandoc (Meta [] [] []) [Plain [Str "hi"]]`. - This should make testing easier. - - * Removed deprecated `-C/--custom-header` option. - Use `--template` instead. - - * `--biblio-file` has been replaced by `--bibliography`. - `--biblio-format` has been removed; pandoc now guesses the format - from the file extension (see README). - - * pandoc will treat an argument as a URI only if it has an - `http(s)` scheme. Previously pandoc would treat some - Windows pathnames beginning with `C:/` as URIs. - - * The `--sanitize-html` option and the `stateSanitize` field in - `ParserState` have been removed. Sanitization is better done in the - resulting HTML using `xss-sanitize`, which is based on pandoc's - sanitization, but improved. - - * pandoc now adds a newline to the end of its output in fragment - mode (= not `--standalone`). - - * Added support for `lang` in `html` tag in the HTML template, - so you can do `pandoc -s -V lang=es`, for example. - - * `highlightHtml` in `Text.Pandoc.Highlighting` now takes - a boolean argument that selects between "inline" and - "block" HTML. - - * `Text.Pandoc.Writers.RTF` now exports `rtfEmbedImage`. - Images are embedded in RTF output when possible (png, jpeg). - Resolves Issue #275. - - * Added `Text.Pandoc.Pretty`. This is better suited for pandoc than the - `pretty` package. Changed all writers that used - `Text.PrettyPrint.HughesPJ` to use `Text.Pandoc.Pretty` instead. - - * Rewrote `writeNative` using the new prettyprinting module. It is - now much faster. The output has been made more consistent and compressed. - `writeNative` is also now sensitive to writerStandalone`, and will simply - `print a block list if writerStandalone` is False. - - * Removed `Text.Pandoc.Blocks`. `Text.Pandoc.Pretty` allows you to define - blocks and concatenate them, so a separate module is no longer needed. - - * `Text.Pandoc.Shared`: - - + Added `writerColumns`, `writerChapters`, and `writerHtml5` to - `WriterOptions`. - + Added `normalize`. - + Removed unneeded prettyprinting functions: - `wrapped`, `wrapIfNeeded`, `wrappedTeX`, `wrapTeXIfNeeded`, `hang'`, - `BlockWrapper`, `wrappedBlocksToDoc`. - + Made `splitBy` take a test instead of an element. - + Added `findDataFile`, refactored `readDataFile`. - + Added `stringify`. Rewrote `inlineListToIdentifier` using `stringify`. - + Fixed `inlineListToIdentifier` to treat '\160' as ' '. - - * `Text.Pandoc.Readers.HTML`: - - + Removed `rawHtmlBlock`, `anyHtmlBlockTag`, `anyHtmlInlineTag`, - `anyHtmlTag`, `anyHtmlEndTag`, `htmlEndTag`, `extractTagType`, - `htmlBlockElement`, `htmlComment` - + Added `htmlTag`, `htmlInBalanced`, `isInlineTag`, `isBlockTag`, - `isTextTag` - - * Moved `smartPunctuation` from `Text.Pandoc.Readers.Markdown` - to `Text.Pandoc.Readers.Parsing`, and parameterized it with - an inline parser. - - * Added `nonspaceChar` to `Text.Pandoc.Parsing`. - - * Ellipses are no longer allowed to contain spaces. - Previously we allowed '. . .', ' . . . ', etc. This caused - too many complications, and removed author's flexibility in - combining ellipses with spaces and periods. - - * Allow linebreaks in URLs (treat as spaces). Also, a string of - consecutive spaces or tabs is now parsed as a single space. If you have - multiple spaces in your URL, use `%20%20`. - - * `Text.Pandoc.Parsing`: - - + Removed `refsMatch`. - + Hid `Key` constructor. - + Removed custom `Ord` and `Eq` instances for `Key`. - + Added `toKey` and `fromKey` to convert between `Key` and `[Inline]`. - + Generalized type on `readWith`. - - * Small change in calculation of relative widths of table columns. - If the size of the header > the specified column width, use - the header size as 100% for purposes of calculating - relative widths of columns. - - * Markdown writer now uses some pandoc-specific features when `--strict` - is not specified: `\` newline is used for a hard linebreak instead of - two spaces then a newline. And delimited code blocks are used when - there are attributes. - - * HTML writer: improved gladTeX output by setting ENV appropriately - for display or inline math (Jonathan Daugherty). - - * LaTeX writer: Use `\paragraph`, `\subparagraph` for level 4,5 headers. - - * LaTeX reader: - - + `\label{foo}` and `\ref{foo}` now become `{foo}` instead of `(foo)`. - + `\index{}` commands are skipped. - - * Added `fontsize` variable to default LaTeX template. - This makes it easy to set the font size using `markdown2pdf`: - `markdown2pdf -V fontsize=12pt input.txt`. - - * Fixed problem with strikeout in LaTeX headers when using - hyperref, by adding a command to the default LaTeX template - that disables `\sout` inside pdf strings. Thanks to Joost Kremers - for the fix. - - * The `COLUMNS` environment variable no longer has any effect. - - [under-the-hood improvements] - - * Pandoc now compiles with GHC 7. (This alone leads to a - significant performance improvement, 15-20%.) - - * Completely rewrote HTML reader using tagsoup as a lexer. The - new reader is faster and more accurate. Unlike the - old reader, it does not get bogged down on some input - (Issues #277, 255). And it handles namespaces in tags - (Issue #274). - - * Replaced `escapeStringAsXML` with a faster version. - - * Rewrote `spaceChar` and some other parsers in Text.Pandoc.Parsing - for a significant performance boost. - - * Improved performance of all readers by rewriting parsers. - - * Simplified Text.Pandoc.CharacterReferences by using - entity lookup functions from TagSoup. - - * `Text.Pandoc.UTF8` now uses the unicode-aware IO functions - from `System.IO` if base >= 4.2. This gives support for - windows line endings on windows. - - * Remove duplications in documentation by generating the - pandoc man page from README, using `MakeManPage.hs`. - - * README now includes a full description of markdown syntax, - including non-pandoc-specific parts. A new `pandoc_markdown` - man page is extracted from this, so you can look up markdown - syntax by doing `man pandoc_markdown`. - - * Completely revised test framework (with help from Nathan Gass). - The new test framework is built when the `tests` Cabal flag is set. It - includes the old integration tests, but also some new unit and quickcheck - tests. Test output has been much improved, and you can now specify a glob - pattern after `cabal test` to indicate which tests should be run; - for example `cabal test citations` will run all the citation tests. - - * Added a shell script, `stripansi.sh`, for filtering ANSI control - sequences from test output: `cabal test | ./stripansi.sh > test.log`. - - * Added `Interact.hs` to make it easier to use ghci while developing. - `Interact.hs` loads `ghci` from the `src` directory, specifying - all the options needed to load pandoc modules (including - specific package dependencies, which it gets by parsing - dist/setup-config). - - * Added `Benchmark.hs`, testing all readers + writers using criterion. - - * Added `stats.sh`, to make it easier to collect and archive - benchmark and lines-of-code stats. - - * Added upper bounds to all cabal dependencies. - - * Include man pages in extra-source-files. This allows users to - install pandoc from the tarball without needing to build the man - pages. - - [bug fixes] - - * Filenames are encoded as UTF8. Resolves Issue #252. - - * Handle curly quotes better in `--smart` mode. Previously, curly quotes - were just parsed literally, leading to problems in some output formats. - Now they are parsed as `Quoted` inlines, if `--smart` is specified. - Resolves Issue #270. - - * Text.Pandoc.Parsing: Fixed bug in grid table parser. - Spaces at end of line were not being stripped properly, - resulting in unintended LineBreaks. - - * Markdown reader: - - + Allow HTML comments as inline elements in markdown. - So, `aaa <!-- comment --> bbb` can be a single paragraph. - + Fixed superscripts with links: `^[link](/foo)^` gets - recognized as a superscripted link, not an inline note followed by - garbage. - + Fixed regression, making markdown reference keys case-insensitive again. - Resolves Issue #272. - + Properly handle abbreviations (like `Mr.`) at the end of a line. - + Better handling of intraword underscores, avoiding exponential - slowdowns in some cases. Resolves Issue #182. - + Fixed bug in alignments in tables with blank rows in the header. - - * RST reader: - - + Field lists now allow spaces in field names, and - block content in field values. (Thanks to Lachlan Musicman - for pointing out the bug.) - + Definition list items are now always `Para` instead of - `Plain`, matching behavior of `rst2xml.py`. - + In image blocks, the description is parsed properly and - used for the alt attribute, not also the title. - + Skip blank lines at beginning of file. Resolves - Debian #611328. - - * LaTeX reader: - - + Improved parsing of preamble. - Previously you'd get unexpected behavior on a document that - contained `\begin{document}` in, say, a verbatim block. - + Allow spaces between `\begin` or `\end` and `{`. - + Support `\L` and `\l`. - + Skip comments inside paragraphs. - - * LaTeX writer: - - + Escape strings in `\href{..}`. - + In nonsimple tables, put cells in `\parbox`. - - * OpenDocument writer: don't print raw TeX. - - * Markdown writer: - - + Fixed bug in `Image`. URI was getting unescaped twice! - + Avoid printing extra blank lines at the end if there are - no notes or references. - - * LaTeX and ConTeXt: Escape `[` and `]` as `{[}` and `{]}`. - This avoids unwanted interpretation as an optional argument. - - * ConTeXt writer: Fixed problem with inline code. Previously - `}` would be rendered `\type{}}`. Now we check the string for '}' and '{'. - If it contains neither, use `\type{}`; otherwise use `\mono{}` - with an escaped version of the string. - - * `:` now allowed in HTML tags. Resolves Issue #274. - -pandoc (1.6) - - [ John MacFarlane ] - - * New EPUB and HTML Slidy writers. (Issue #122) - - - EPUB is a standard ebook format, used in Apple's iBooks for - the iPad and iPhone, Barnes and Noble's nook reader, the Sony - reader, and many other devices. - - Slidy, like S5, is a system for producing HTML+javascript slide - shows. - - * All input is assumed to be UTF-8, no matter what the locale and ghc - version, and all output is UTF-8. This reverts to pre-1.5 behavior. - Also, a BOM, if present, is stripped from the input. - - * Markdown now supports grid tables, whose cells can contain - arbitrary block elements. (Issue #43) - - * Sequentially numbered example lists in markdown with `@` marker. - - * Markdown table captions can begin with a bare colon and no longer need - to include the English word "table." Also, a caption can now occur - either before or after the table. (Issue #227) - - * New command-line options: - - - `--epub-stylesheet` allows you to specify a CSS file that will - be used to style your ebook. - - `--epub-metadata` allows you to specify metadata for the ebook. - - `--offline` causes the generated HTML slideshow to include all - needed scripts and stylesheets. - - `--webtex` causes TeX math to be converted to images using the - Google Charts API (unless a different URL is specified). - - `--section-divs` causes div tags to be added around each section - in an HTML document. (Issue #230, 239) - - * Default behavior of S5 writer in standalone mode has changed: - previously, it would include all needed scripts and stylesheets - in the generated HTML; now, only links are included unless - the `--offline` option is used. - - * Default behavior of HTML writer has changed. Between 1.2 and 1.5, - pandoc would enclose sections in div tags with identifiers on the - div tags, so that the sections can be manipulated in javascript. - This caused undesirable interactions with raw HTML div tags. So, - starting with 1.6, the default is to put the identifiers directly - on the header tags, and not to include the divs. The `--section-divs` - option selects the 1.2-1.5 behavior. - - * API changes: - - - `HTMLMathMethod`: Added `WebTeX`, removed `MimeTeX`. - - `WriterOptions`: Added `writerUserDataDir`, `writerSourceDirectory`, - `writerEPUBMetadata` fields. Removed `writerIncludeBefore`, - `writerIncludeAfter`. - - Added `headerShift` to `Text.Pandoc.Shared`. - - Moved parsing code and `ParserState` from `Text.Pandoc.Shared` - to a new module, `Text.Pandoc.Parsing`. - - Added `stateHasChapters` to `ParserState`. - - Added `HTMLSlideVariant`. - - Made `KeyTable` a map instead of an association list. - - Added accessors for `Meta` fields (`docTitle`, `docAuthors`, - `docDate`). - - `Pandoc`, `Meta`, `Inline`, and `Block` have been given `Ord` - instances. - - Reference keys now have a type of their own (`Key`), with its - own `Ord` instance for case-insensitive comparison. - - Added `Text.Pandoc.Writers.EPUB`. - - Added `Text.Pandoc.UUID`. - - Removed `Text.Pandoc.ODT`, added `Text.Pandoc.Writers.ODT`. - Removed `saveOpenDocumentAsODT`, added `writeODT`. - - Added `Text.Pandoc.Writers.Native` and `writeNative`. - Removed `prettyPandoc`. - - Added `Text.Pandoc.UTF8` for portable UTF8 string IO. - - Removed `Text.Pandoc.Writers.S5` and the `writeS5` function. - Moved `s5Includes` to a new module, `Text.Pandoc.S5`. - To write S5, you now use `writeHtml` with `writerSlideVariant` - set to `S5Slides` or `SlidySlides`. - - * Template changes. If you use custom templates, please update them, - particularly if you use syntax highlighting with pandoc. The old HTML - templates hardcoded highlighting CSS that will no longer work with - the most recent version of highlighting-kate. - - - HTML template: avoid empty meta tag if no date. - - HTML template: Use default highlighting CSS from highlighting-kate - instead of hard-coding the CSS into the template. - - HTML template: insert-before text goes before the title, and - immediately after the <body> tag, as documented. (Issue #241) - - Added slidy and s5 templates. - - Added amssymb to preamble of latex template. (github Issue 1) - - * Removed excess newlines at the end of output. Note: because output - will not contain an extra newline, you may need to make adjustments - if you are inserting pandoc's output into a template. - - * In S5 and slidy, horizontal rules now cause a new slide, so you - are no longer limited to one slide per section. - - * Improved handling of code in man writer. Inline code is now monospace, - not bold, and code blocks now use .nf (no fill) and .IP (indented para). - - * HTML reader parses `<tt>` as Code. (Issue #247) - - * html+lhs output now contains bird tracks, even when compiled without - highlighting support. (Issue #242) - - * Colons are now no longer allowed in autogenerated XML/HTML identifiers, - since they have a special meaning in XML. - - * Code improvements in ODT writer. Remote images are now replaced with - their alt text rather than a broken link. - - * LaTeX reader improvements: - - - Made latex `\section`, `\chapter` parsers more forgiving of - whitespace. - - Parse `\chapter{}` in latex. - - Changed `rawLaTeXInline` to accept `\section`, `\begin`, etc. - - Use new `rawLaTeXInline'` in LaTeX reader, and export `rawLaTeXInline` - for use in markdown reader. - - Fixes bug wherein `\section{foo}` was not recognized as raw TeX - in markdown document. - - * LaTeX writer: images are automatically shrunk if they would extend - beyond the page margin. - - * Plain, markdown, RST writers now use unicode for smart punctuation. - - * Man writer converts math to unicode when possible, as in other writers. - - * `markdown2pdf` can now recognize citeproc options. - - * Command-line arguments are converted to UTF-8. (Issue #234) - - * `Text.Pandoc.TeXMath` has been rewritten to use texmath's parser. - This allows it to handle a wider range of formulas. Also, if a formula - cannot be converted, it is left in raw TeX; formulas are no longer - partially converted. - - * Unicode curly quotes are left alone when parsing smart quotes. (Issue - #143) - - * Cabal file changes: - - - Removed parsec < 3 restriction. - - Added 'threaded' flag for architectures where GHC lacks a threaded - runtime. - - Use 'threaded' only for markdown2pdf; it is not needed for pandoc. - - Require highlighting-kate 0.2.7. - - * Use explicit imports from `Data.Generics`. Otherwise we have a - conflict with the 'empty' symbol, introduced in syb >= 0.2. (Issue #237) - - * New data files: slidy/slidy.min.js, slidy/slidy.min.css, epub.css. - -pandoc (1.5.1.1) - - [ John MacFarlane ] - - * Fixed uniqueIdent in Shared so that header identifiers work as - advertized in the README and are are valid XHTML names. - -pandoc (1.5.1) - - [ John MacFarlane ] - - * Fixed treatment of unicode characters in URIs. - + Shared now exports escapeURI and unescapeURI. These handle - UTF8 encoding and decoding as well as URI escaping/unescaping. - + Shared: uri and emailAddress now return a pair of the original - parsed text and the escaped URI (in the latter case, with - the mailto: prefix). - + HTML reader: unsanitaryURI has been modified to allow unicode - high characters in a URI. - + Readers: All link and image URIs are now escaped using - escapeURI. - + Markdown and RST writers: unescapeURI is used so that URIs - in these formats are human-readable. - - * Setup.hs: Don't assume that the build directory is "dist". - Instead, get it from localBuildInfo. - - * OpenDocument writer: Use a Map for stTextStyleAttr. - This avoids duplicates (and invalid xml). Resolves Issue #222. - -pandoc (1.5.0.1) - - [ John MacFarlane ] - - * HTML writer: Fixed error in math writer (with MathML option) - that caused an infinite loop for unparsable MathML. - -pandoc (1.5) - - [ John MacFarlane ] - - * Added --mathml option. When this is selected, pandoc will convert - TeX math into MathML. - + Added data/MathMLinHTML.js, which is included when no URL is - provided for --mathml. This allows MathML to be displayed (in - better browsers) as text/html. - + Removed Text.Pandoc.LaTeXMathML. The module was no longer - necessary; it was replaced by two lines in pandoc.hs. - + Replaced LaTeXMathML.js.comment and LaTeXMathML.js.packed with a - single combined file, LaTeXMathML.js. - - * Added --data-dir option. - This specifies a user data directory. If not specified, will default - to ~/.pandoc on unix or Application Data\pandoc on Windows. - Files placed in the user data directory will override system default - data files. - - * Added Maybe datadir parameter to readDataFile, saveOpenDocumentAsODT, - latexMathMLScript, s5HeaderIncludes, and getDefaultTemplate. If - Nothing, no user directory is searched for an override. - - * Added 'plain' output format. This is similar to markdown, but - removes links, pictures, inline formatting, and most anything that - looks even vaguely markupish. The function writePlain is exported by - Text.Pandoc.Writers.Markdown, with which it shares most of its code. - - * Allow multi-line titles and authors in meta block. - Titles may span multiple lines, provided continuation lines - begin with a space character. Separate authors may be put on - multiple lines, provided each line after the first begins with - a space character. Each author must fit on one line. Multiple - authors on a single line may still be separated by a semicolon. - Based on a patch by Justin Bogner. - - * When given an absolute URI as parameter, pandoc will try to fetch - the content via HTTP. So you can do: - 'pandoc -r html -w markdown http://www.fsf.org' - Adds dependency on HTTP. - - * Made HTML reader much more forgiving. - + Incorporated idea (from HXT) that an element can be closed - by an open tag for another element. - + Javascript is partially parsed to make sure that a <script> - section is not closed by a </script> in a comment or string. - + More lenient non-quoted attribute values. - Now we accept anything but a space character, quote, or <>. - This helps in parsing e.g. www.google.com! - + Bare & signs are now parsed as a string. This is a common - HTML mistake. - + Skip a bare < in malformed HTML. - - * Removed html2markdown and hsmarkdown. - + html2markdown is no longer needed, since you can now pass URI - arguments to pandoc and directly convert web pages. (Note, - however, that pandoc assumes the pages are UTF8. html2markdown - made an attempt to guess the encoding and convert them.) - + hsmarkdown is pointless -- a large executable that could be - replaced by 'pandoc --strict'. - - * In most writers, an image in a paragraph by itself is now rendered - as a figure, with the alt text as the caption. (Texinfo, HTML, RST, - MediaWiki, Docbook, LaTeX, ConTeXt, HTML.) Other images are - rendered inline. - - * Depend on extensible-exceptions. This allows pandoc to be compiled - on GHC 6.8. - - * Added --base-header-level option. For example, --base-header-level=2 - will change level 1 headers to level 2, level 2 to level 3, etc. - Closes Debian #563416. - - * Incomplete support for RST tables (simple and grid). - Thanks to Eric Kow. Colspans and rowspans not yet supported. - - * Added accessors (docTitle, docAuthors, docDate) to Meta type. - - * MediaWiki writer: format links with relative URLs as wikilinks. - The new rule: If the link target is an absolute URL, an external - link is created. Otherwise, a wikilink is created. - - * Text.Pandoc.Shared: Export uniqueIdent, and don't allow tilde in - identifier. Note: This may break links to sections that involve - tildes. - - * Markdown(+lhs) reader: handle "inverse bird tracks." - Inverse bird tracks (<) are used for haskell example code that is not - part of the literate Haskell program. Resolves Issue #211. - - * LaTeX reader: - + Recognize '\ ' (interword space). - + Recognize nonbreaking space '~'. - + Ignore \section, \pdfannot, \pdfstringdef. Ignore alt title in - section headers. Don't treat \section as inline LaTeX. - Resolves Issue #202. - + LaTeX reader: allow any special character to be escaped. - Resolves Issue #221. - + LaTeX reader: treat \paragraph and \subparagraph as level 4, 5 - headers. Resolves Issue #207. - - * Use template variables for include-before/after. - + These options now imply -s; previously they worked also in fragment - mode. - + Users can now adjust position of include-before and include-after - text in the templates. - + Default position of include-before moved back (as it was before 1.4) - before table of contents. - + Resolves Issue #217. - - * Don't print an empty table header: (all writers). - Resolves Issue #210. - - * HTML, Docbook writer: Use tbody, thead, and cols in tables. - - * HTML writer: Don't include TOC div if table of contents is empty. - - * Markdown writer: Fixed citations. - Previously the markdown writer printed raw citation codes, e.g. - [geach1970], rather than the expanded citations provided by - citeproc, e.g. (Geach 1970). Now it prints the expanded citations. - This means that the document produced can be processed as a markdown - document without citeproc. Thanks to dsanson for reporting, and - Andrea Rossato for the patch. - - * Improved and simplified title block in context template. - Previously it caused an error if there was no title. - This method should also be easier for users to customize. - - * Markdown reader: - + Treat p., pp., sec., ch., as abbreviations in smart mode. - + Disallow blank lines in inline code span. - + Allow footnotes to be indented < 4 spaces. - This fixes a regression. A test case has been added. - + Escape spaces in URLs as %20. Previously they were incorrectly - escaped as +, which is appropriate only for the query part of - a URL. Resolves Issue #220. - + Require two spaces after capital letter + period for list item. - Otherwise "E. coli" starts a list. This might change the semantics - of some existing documents, since previously the two-space - requirement was only enforced when the second word started - with a capital letter. But it is consistent with the existing - documentation and follows the principle of least surprise. - Resolves Issue #212. - - * LaTeX template: redefine labelwidth when using enumerate package. - Otherwise the list labels (numbers) often extend past the left - margin, which looks bad. - - * Mediawiki writer: Don't print a "== Notes ==" header before - references. This is too English-centric. Writers can provide their - own header at the end of the document. - - * Promoted mediawiki headers. '= head =' is now level 1, '== head ==' - level 2, etc. This seems to be correct; it's only by convention - that wikipedia articles have level 2 headers at most. - Patch due to Eric Kow. - - * RunTests.hs: Set LANG to a UTF-8 locale. Use 'pandoc --data-dir=' so - data files don't need to have been installed. This removes the need to - set HOME. - - * HTML reader: - + Handle spaces before <html>. Resolves Issue #216. - + Be forgiving in parsing a bare list within a list. - The following is not valid xhtml, but the intent is clear: - <ol> - <li>one</li> - <ol><li>sub</li></ol> - <li>two</li> - </ol> - We'll treat the <ol> as if it's in a <li>. Resolves Issue #215. - - * Updated INSTALL instructions. cabal method is now promoted. - - * Updated markdown2pdf man page. It no longer says all pandoc options - are accepted. - - * README/man pages: Removed advice to pipe through tidy before HTML - reader. This is obsolete, now that we have a forgiving HTML parser. - - * LaTeX writer: set numbersections template variable, so - the section numbering options work again. - - * Removed obsolete Makefile. - - * Website: renamed index.txt.in -> index.txt. - - * New batch file to make-windows-installer. - + Removed old Makefile.windows - + Added make-windows-installer.bat - + Modified default installer name in pandoc-setup.iss - - * Removed freebsd and macports directories. - They are no longer up to date. - - * Setup.hs: - + Made man page building sensitive to build verbosity. - + Improved detection of highlighting support in test hook. - + Install wrapper scripts into cabal bin directory. - + Also simplified installManpages. - + Setup.hs: install manpages to mandir. Code borrowed from darcs. - - * Changed default of writerXeTeX to False. - - * HTML writer: don't include empty UL if --toc but no sections. - Resolves Issue #199. - - * LaTeX writer: - - + If book, report, or memoir documentclass, use \chapter{} - for first-level headers. Otherwise use \section{}. - + Removed stLink, link template variable. Reason: we now always - include hyperref in the template. - - * LaTeX template: - - + Only show \author if there are some. - + Always include hyperref package. It is used not just for links but - for toc, section heading bookmarks, footnotes, etc. Also added - unicode=true on hyperref options. - - * markdown2pdf: always do at least two runs. hyperref bookmarks - require this. - - * cabal file: Removed unneeded dependency on template-haskell. - - * Windows installer - fixed bug in data file locations. - Resolves Issue #197. - - * Deprecated --custom-header in documentation. - Removed old "Custom Headers" section in README. - -pandoc (1.4) - - [ John MacFarlane ] - - * Pandoc will now compile with either GHC 6.10 or 6.12. - + Don't use System.IO.UTF8 when compiling with 6.12 - + Use -fno-warn-unused-do-bind option when compiling with 6.12 - - * Replaced old headers with templates. Now users have much more - control over the way documents appear in --standalone mode, - and writer code is simplified. Resolves Issues #59, 147. - Every effort has been made to retain backwards compatibility. - So, the --custom-header option should still work as before. - - + Added Text.Pandoc.Templates. This provides functions for - retrieving default templates and for rendering templates. - + System templates (in the pandoc data directory) can be - overridden by user templates in $HOME/.pandoc/templates. - + Removed Text.Pandoc.DefaultHeaders. - + Removed data/headers directory. - + Added templates directory. - + Added writerTemplate and writerVariables fields to WriterOptions. - + Removed writerTitlePrefix, writerHeader fields from WriterOptions. - + Changed --print-default-header to --print-default-template. - + Added --template option. - + Added -V/--variable option to set custom template variables. - - * Pandoc no longer requires Template Haskell. Resolves Issue #186. - - + Removed need for TH in ODT module. Instead get reference.odt from - data file at run time. - + Removed TH dependency from S5 module. S5 module now exports - s5HeaderIncludes, which pandoc.hs includes if writer is s5 and - standalone. - + Refactored LaTeXMathML not to use TH. - - * Meta is now Meta [Inline] [[Inline]] [Inline] rather than - Meta [Inline] [String] String. Authors and date in Meta are now lists - of Inline elements rather than raw strings. This means that they can - be formatted and can include footnotes. NOTE: This may be a breaking - change for those using pandoc as a library. - - * Added readDataFile to Text.Pandoc.Shared. This retrieves - a data file from the user pandoc data directory (~/.pandoc - on unix), or, if not found there, from the system data - directory ($CABALDIR/shared/pandoc-VERSION/). All data - files, including templates, LaTeXMathML.js, s5 styles, - and reference.odt, can be overridden by the user. - - * s5 files moved from data/ui/default to s5/default. - - * Use unicode instead of entities in HTML and XML output. Resolves - Issue #163. - - * Prettier HTML footnote references: put anchor inside sup, - instead of other way. Resolves Issue #191. Thanks to - infinity0x. - - * Added --xetex option to pandoc and markdown2pdf. - If --xetex is specified, pandoc produces latex suitable for - processing by xelatex, and markdown2pdf uses xelatex to create - the PDF. Resolves Issue #185. - - * RTF writer: multiple authors now occupy multiple paragraphs rather - than using a line break. - - * Man writer: now the "--after-body" will come after the "AUTHORS" - section, whereas before it would come before it. This is a - slight break from backwards compatibility. - - * Added --reference-odt option, so users may customize the styles - used in pandoc-generated ODT files. Users may also place a - default reference.odt in the ~\.pandoc directory. - - * ODT writer: - + Indented and line-broke styles.xml so it can be modified more easily. - + Omitted some unnecessary style declarations. - + Don't wrap text in OpenDocument writer. The tags are too long, making - wrapping ugly and pointless. - - * LaTeX reader: use \\ to separate multiple authors. - - * Markdown reader: use ; as separator between authors. - This allows you to use ',' within author names: e.g. "John Jones, Jr." - - * S5 writer: use linebreak to separate authors in title page. - - * RST reader: Allow :: before lhs code block. The RST spec requires the - :: before verbatim blocks. This :: should not be treated as literal - colons. Resolves Issue #189. - - * Documented pandoc 1.3's new definition list syntax in README. - (An oversight in the last release.) - - * markdown2pdf.hs: - + interpret ! in a log as an error line. - + --toc now works properly. - - * Changes in RunTests.hs: - + Use the Diff library rather than a local copy of Diff.hs. - (This vastly increases performance.) This change means that 'cabal - test' presupposes that the Diff library is installed. - + Removed tests/Diff.hs from cabal file. - + Changed RunTests to use local environment. We need at least HOME, so - pandoc can find its data directory. - - * Updated windows installer to install data files in the app directory. - - * Windows installer now installs portable wrappers hsmarkdown and - markdown2pdf. - -pandoc (1.3) - - [ John MacFarlane ] - - * Added --id-prefix option (Issue #41). This adds a prefix to all - automatically generated HTML identifiers, which helps prevent - duplicate identifiers when you're generating a fragment (say a blog - post). - - * Added --indented-code-classes option. This specifies classes - to use for indented code blocks. (Patch due to buttock; Issue #87.) - - * --number-sections now affects HTML output as well as ConTeXt and LaTeX - (Issue #150). - - * Improved syntax for markdown definition lists (Issue #24). - Definition lists are now more compatible with PHP Markdown Extra. - + You can have multiple definitions for a term (but still not - multiple terms). - + Multi-block definitions no longer need a column before each block - (indeed, this will now cause multiple definitions). - + The marker no longer needs to be flush with the left margin, - but can be indented at or two spaces. Also, ~ as well as : - can be used as the marker (this suggestion due to David - Wheeler.) - + There can now be a blank line between the term and the - definitions. - - * Better looking simple tables. Resolves Issue #180. - + Markdown reader: simple tables are now given column widths of 0. - + Column width of 0 is interpreted as meaning: use default column width. - + Writers now include explicit column width information only - for multiline tables. (Exception: RTF writer, which requires - column widths. In this case, columns are given equal widths, - adding up to the text width.) - + Simple tables should now look better in most output formats. - - * Allow markdown tables without headers (Issue #50). - The new syntax is described in README. Also allow optional line of - dashes at bottom of simple tables. - - * Compensate for width of final table column (Issue #144). - - * Treat a backslash followed by a newline as a hard line break - in markdown. Resolves Issue #154. This is a nice alternative - to markdown's "invisible" way of indicating hardline breaks - using lines that end with two spaces. - - * Improved performance of markdown reader by ~10% by eliminating the - need for a separate parsing pass for notes. Raw notes are now stored - on the first pass (which parses references), then parsed when the - note is inserted into the AST. The stateNotes field in ParserState - is now a list of [(String, String)] pairs instead of [(String, - [Block])]. - - * In markdown reader, treat 4 or more * or _ in a row as literal - text. (Trying to parse long strings of * or _ as strong or emph - leads to exponential performance problems.) - - * Markdown reader: Use + rather than %20 for spaces in URLs. - - * Fixed htmlComment parser, adding a needed 'try'. - - * Don't print raw HTML in man output. - - * Allow . _ and ~ in header identifiers. - - * Specially mark code blocks that were "literate" in the input. - They can then be treated differently in the writers. This allows - authors to distinguish bits of the literate program they are writing - from source code examples, even if the examples are marked as - Haskell for highlighting. (Issue #174.) - - * Modified html+lhs output to use "haskell" highlighter instead - of "literateHaskell". The highlighting module now adds bird tracks - after highlighting (for HTML output), if the code block has the - "literate" class. This gives better results, because kate's - haskell highlighter is much better than the literateHaskell - highlighter. - - * Fixed handling of footnotes in titles (HTML) and headers (LaTeX). - (Issue #137.) - - * Support for "..code-block" directive in RST reader. Not core - RST, but used in Sphinx for code blocks annotated with syntax - information. Thanks to Luke Plant for the patch. - - * Added "head" to list of block-level HTML tags. Resolves - Issue #108. - - * Added stripTags to Text.Pandoc.XML. This is used in the HTML writer. - - * Set utf-8 encoding in texinfo headers. - - * Docbook writer: add ids to sections. Use link for internal links. - (Issue #60.) - - * Blank lines after lists in MediaWiki writer. - - * Properly handle commented-out list items in markdown. - Resolves Issue #142. Example: - - - a - <!-- - - b - --> - - c - - * Changed heuristic in compactify. compactify has to decide whether a - Para that ends a list is a Para intentionally, or just because of - the blank lines at the end of every list. In the latter case the - Para is turned to a Plain. The old heuristic was: change final Para - to Plain iff the other items all end in Plain. This produces bad - results when, for example, an item contains just a Plain and an HTML - comment, as it does in the list above. The new heuristic: change - final Para to Plain iff the other items don't contain a Para. - - * Added % as an rst underline character. Resolves Issue #173. - - * Fix inline math parser so that \$ is allowed in math. - Resolves Issue #169. - - * Translate \int (integral) into unicode when using unicode math - method. Resolves Issue #177. - - * markdown2pdf.hs improvements: - + Use System.IO.UTF8. - + Print error messages on last attempt. - + Do not create a backup when overwriting a PDF (Issue #166). - + Accept --longopt=val options. - + Added man/man1/markdown2pdf.1 to extra-tmp-files in cabal, so that - it is properly cleaned. - - * Added haddock comments warning that readers assume \n line endings. - - * Updated COPYRIGHT file. - - * Makefile: Changed EXECSBASE so it doesn't pull in hsmarkdown & - markdown2pdf. Otherwise strip tries to strip shell scripts when you - install using 'make'. - - * Changed Makefile so it doesn't build Haskell wrappers. - - * Fixed Makefile so it doesn't try to build man pages in build-doc. - - * Install pcre3.dll in Windows install script; this allows us to - package a version of pandoc with highlighting support. - -pandoc (1.2.1) - - [ John MacFarlane ] - - * Fixed regression with --preserveTabs. Brought back optPreserveTabs. - The trick of setting tabStop to 0 to mean "preserve tabs" had a bad - side effect: strings of 0 spaces were interpreted as indentation. - So, with --preserve-tabs, unindented paragraphs were treated as - code. Resolves Issue #138. - - * HTML writer: wrap sections in divs. Resolves Issue #70. - - + hierarchicalize has been rationalized; it builds a hierarchical - representation of the document from the headers, and simultaneously - gives each section a unique identifier based on the heading title. - + Identifiers are now attached to the divs rather than - to the headers themselves. - + Table of content backlinks go to the beginning of the table, rather - than to the section reference that was clicked. - + Code for constructing identifiers has been moved to Text.Pandoc.Shared - from the HTML writer, since it is now consumed only by - hierarchicalize. - + In --strict mode, pandoc just prints bare headings, as before - (unless --toc has been specified). - + In s5 output, it does not wrap sections in divs, as that seems to - confuse the s5 javascript. - - * Man writer: break lines at end of each sentence. groff expects this - and treats '.' and '?' differently when followed by line ending as - opposed to ordinary space. Also, don't escape periods. Instead, use - zero-width character \& to avoid unwanted interpretation of periods - at start of line. Resolves Issue #148. - - * Markdown writer: Added '#' and '>' to list of characters to be - escaped in markdown output. Removed '<', as it is not an officially - escapable character. This partially resolves Issue #96. - - * Make --smart the default for man output format. Otherwise we have - trouble dividing lists of endlines into sentences. - - * DocBook writer: Use language attribute to indicate source language - in code blocks. - - * RST reader: - - + Allow # to continue list, even if the list was started with an - explicit marker. For example: - - A. my list - #. continued - - Resolves Issue #140. - + Allow continuation lines in line blocks. Also added test cases for - line blocks for RST reader. Resolves Issue #149. - + Allow explicit links with spaces in URL: `link <to this>`_ - - * Improved LaTeX reader's coverage of math modes. Remove displaymath* - (which is not in LaTeX) and recognize all the amsmath environments - that are alternatives to eqnarray, namely equation, equation*, - gather, gather*, gathered, multline, multline*, align, align*, - alignat, alignat*, aligned, alignedat, split. Resolves Issue #103. - Thanks to shreevatsa.public for the patch. - - * Markdown reader: - - + Allow -, _, :, . in markdown attribute names. These are legal in - XML attribute names. - + Use non-breaking spaces in abbreviations. - + Markdown reader: improved efficiency of abbreviation parsing. - Instead of a separate abbrev parser, we just check for - abbreviations each time we parse a string. This gives a huge - performance boost with -S. Resolves Issue #141. - - * Improved efficiency of shared parsers: hexNum, htmlComment, - whitespace, indentSpaces. - - * Export HTMLMathMethod in Text.Pandoc. - - * Export languagesByExtension in Text.Pandoc.Highlighting. - - * Added new Haskell version of markdown2pdf, due to - Paulo Tanimoto. This should be more portable than the old - shell script. - - * Made 'pandoc -v' more explicit about compiler options. - Resolves Issue #139. - - * pandoc.hs: Made --strict compatible with --standalone, --toc. - - * Use Paths_pandoc to get version number, instead of hard-coding it - into Text/Pandoc.hs. - -pandoc (1.2) - - [ John MacFarlane ] - - * Added support for literate Haskell. lhs support is triggered by - '+lhs' suffixes in formats. For example, 'latex+lhs' is literate - Haskell LaTeX. '.lhs' files are treated by default as literate - markdown. - - + Added stateLiterateHaskell to parser state. - + Added parser for lhsCodeBlock to Markdown, RST, LaTeX readers. - + Added parser for |inline lhs| to LaTeX reader. - + Added writerLiterateHaskell to WriterOptions. - + Added lhs support to Markdown, RST, LaTeX, HTML writers. - + Added definition of code environment to LaTeX header. - + Added tests (run only if highlighting support compiled in). - + Documented lhs features in man page and README. - - * In Text.Pandoc.Definition, added processWith, processWithM, - and queryWith, and deprecated processPandoc and queryPandoc - for these more general functions. - - * Fixed bug in mediawiki writer: improper closing tags in tables. - Thanks to Benct Philip Jonsson for reporting the bug. - - * Added --email-obfuscation option. - - + Added writer option for email obfuscation. - + Implemented email obfuscation options in HTML writer. - + Added option to option parser. - + Documented in README and pandoc man page. - + Resolves Issue #97. - - * LaTeX writer: fixed bug with empty table cells. - Resolves Issue #107. Thanks to rodja.trappe for the patch. - - * Fixed bug with header spacing in Markdown and RST writers. - A null header (Meta [] [] []) should not cause a blank line - at the beginning of output. But a blank line is needed between - a non-null header and the main text. - - * Markdown reader: Relax spacing rules for $$ in display math. Now - space and newlines are allowed after the opening $$ and before the - closing $$. However, the display math cannot contain an entirely - blank line. Resolves Issue #105. - - * Markdown reader: Gobble space after Plain blocks containing only - raw html inline. Otherwise following header blocks are not parsed - correctly, since the parser sees blank space before them. Resolves - Issue #124. - - * Markdown reader: Allow " as well as '' to end a latex double-quote. - - * Conditionally depend on syb and base >= 4 if ghc >= 6.10. - Resolves Issue #109. - - * Fixed problems in RST and markdown output due to bug in pretty-1.0.1.0 - - + Added hang' function to Text.Pandoc.Shared; this will be used instead - of hang, which doesn't work properly in pretty-1.0.1.0. When pretty - is upgraded, we can go back to hang. - See http://article.gmane.org/gmane.comp.lang.haskell.general/16687 - + Use hang' (and some different techniques) in RST and markdown writers. - Some output is now a bit different. - - * Brought citeproc support up to date for citeproc-hs-0.2. - (Patch by Andrea Rossato.) - - * Moved all haskell source to src subdirectory. Renamed Main.hs to - pandoc.hs. - - * Rewrote hsmarkdown in Haskell for portability (src/hsmarkdown.hs). - For now, keeping the old shell script too. - - * Added TemplateHaskell to Extensions for executable, removed - -threaded for library. Thanks to duncan.coutts for the bug report. - Resolves Issue #121. - - * Moved some Extra-Source-Files to Data-Files. - - * Moved tabFilter to Shared. - - * In pandoc.hs, removed optPreserveTabs; instead, tabstop of 0 means - preserve tabs. - - * Minor code cleanup based on hlint suggestions. - -pandoc (1.1) - - [ John MacFarlane ] - - * Main.hs: - - + Changed date on copyright message in Main.hs. - + Have the '-v' option print syntax highlighting languages - separated by commas, and wrapped in lines, instead of in five - columns as before. - - * Added --jsmath option. Resolves Issue #68. - - + Added --jsmath option to Main.hs - + Added JsMath to HTMLMathMethod in Text.Pandoc.Shared. - + Handle math appropriately in HTML writer when JsMath selected. - + Documented the option in README and man page. - - * Text.Pandoc.Shared: Changed compactify to use a better heuristic - for tight and loose lists. Final Para is changed to Plain if all - other list items *end* with a Plain block. Addresses Issue #99. - - * HTML reader: - - + Added colons to protocols in unsanitaryURI. Closes Issue #88. - + HTML reader: Don't interpret contents of <pre> blocks as markdown. - Added rawVerbatimBlock parser. Resolves Issue #94. - - * Markdown reader: - - + Allow URLs with spaces in them in links and references, but escape - them as "%20". - + Allow blank space at the end of horizontal rules. - - * RST reader: Modified 'unknownDirective' parser to handle comment - blocks correctly, and added tests for comment blocks. Resolves Issue - #86. Closes Debian Bug #500662. - - * HTML writer: - - + Include classes on tr elements in HTML output: - "header", "odd", "even". This allows tables to be styled with - lines in alternating colors. Resolves Issue #91. - + Enclose all LaTeXMathML bits in <span class="LaTeX">. - This prevents parts of the document that are not math from being - interpreted as math by LaTeXMathML.js. - - * OpenDocument and ODT writers: Added support for HorizontalRule elements, - which were formerly ignored. Resolves Issue #95. - - * Text.Pandoc.Shared: Modified wrappedTeX to eliminate the line break - between a footnote and immediately following nonspace characters in - LaTeX and ConTeXt output. (This gets interpreted as a space, which - is not desired in cases like `text^[note]---`.) Resolves Issue #93. - - * Windows installer: Don't require admin privileges to run - installer. Modified pandoc-setup.iss, and changed modpath.iss to - modify HKCU path if user lacks admin privileges. Also fixed case - where oldpath is empty (previously this led to the new path - beginning with a semicolon). - - * Updated INSTALL instructions for Arch packages and OS X install using - cabal-install. - - * Removed the (now unneeded) debian directory. - Removed empty Codec and System directories. - - * Moved odt-styles/ to data/. Removed unneeded variable in Makefile. - - * Modified Setup.hs so that the "test" target returns an error status - when tests fail, and "build" returns a success status if - the build succeeds. Resolves Issue #100. - - * Added BUGS to files in tarball. - - -pandoc (1.0.0.1) - - [ John MacFarlane ] - - * Removed spurious reference to pdf output format from pandoc(1) man page. - -pandoc (1.0) - - [ Andrea Rossato ] - - * Added new OpenDocument writer. - - * Added support for SmallCaps inline element. - - * Added support for integrating pandoc with citeproc-hs. - - + Added Cite element to definition and writers. - + Added Text.Pandoc.Biblio module - + Note: This support is included only if the 'citeproc' - Cabal configuration flag is set. - - * Made Pandoc data structure an instance of Typeable. - Added new processPandoc and queryPandoc functions, to query - or transform matching elements in a Pandoc structure. - - [ Peter Wang ] - - * Added new Texinfo writer. - - [ John MacFarlane ] - - * Changes to Texinfo writer: - - + No space between paragraph and following @verbatim (provides more - pleasing appearance in text formats) - + Blank line consistently after list environments. - + Removed deVerb. - + Use @code instead of @verb for inline code (this solves the character - escaping problem for texi2dvi and texi2pdf). - + Added news of Texinfo writer to README. - + Added Texinfo to list of formats in man page, and removed extra 'groff'. - + Added texi & texinfo extensions to Main.hs, and fixed bug in determining - default output extension. - + Modified disallowedInNode in Texinfo writer to correct list of disallowed characters. - - * Added tests for OpenDocument writer. - - * Added ODT writer (using zip-archive library to package output of - OpenDocument writer). Added odt-styles directory with default ODT styles. - - * Added new mediawiki writer and tests. - - * Markdown reader: Added support for delimited code blocks, with optional - syntax highlighting using highlighting-kate (if the 'highlighting' - configuration option is selected). - - + Currently highlighting is supported only in the HTML writer. - + Delimited code blocks can have attributes; using the language name as - class triggers highlighting. - + New Attributes parameter in CodeBlock structure. - + --version now indicates whether syntax highlighting support is compiled - in, and prints a list of supported languages - - * Removed debian directory. Pandoc is no longer a native debian package. - - * Changes to build process: pandoc can now be built from the repository - using Cabal. No unix tools are needed (so, pandoc can be built on Windows - without Cygwin). - - + Include shell scripts themselves in repo, rather than generating from wrappers. - Removed wrappers directory and wrappers Makefile target. - + Text/Pandoc/ASCIIMathML.hs, Text/Pandoc/DefaultHeaders.hs, - and Text/Pandoc/Writers/S5.hs are no longer built in Makefile - from templates in the templates/ directory. Instead, they use template - haskell to read data at compile time from the relevant files in data/. - Template haskell functions go in a new module, Text.Pandoc.TH. - + man pages are now generated in Setup.hs hook, not by Makefile - + Makefile 'tarball' target now calls Cabal's 'sdist' - + Added "Extra-Source-Files" to pandoc.cabal, so sdist contains everything needed - + Added "Build-Type" field to pandoc.cabal to avoid warning. - + Added to "Extra-source-files" and "Extra-tmp-files" in pandoc.cabal, - so 'sdist' and 'clean' will work properly. - + Setup.hs now generates man pages in a postbuild hook. - + Added dependency-checking to Setup.hs, so it only rebuilds things - that need rebuilding. - + Added 'library' and 'executable' configuration flags. - Cabal can now be told to build just the library or just the executable. - + CABALOPTS may now be specified with 'make' to pass Cabal configuration flags. - For example: CABALOPTS=-fhighlighting make - - * Rewrote test suite so it doesn't depend on perl or unix tools. - - + Replaced old runtests.pl with a Haskell script RunTests.hs. - + Added Diff.hs module to be used by RunTests.hs instead of unix 'diff'. - + Added test hook to Setup.hs, so tests may be run from cabal. - + Changed Makefile's 'test' target to run tests via cabal. - + Removed old generate.sh. - + Since we no longer have 'sed' to filter out raw HTML sections - from the docbook writer test, or raw LaTeX sections from the - context writer test, we now just include these sections. - They can be taken out if it is necessary to process the files. - + Updated latex and context writer tests to remove extra spaces - after '\\item' - + Added a markdown table reader test. - + Added markdown-reader-more.txt to test suite, for additional test cases - for raw ConTeXt environments and more. - - * Compatibility fixes for CPP, Cabal, and haddock: - - + Use CPP in "Extensions" field in pandoc.cabal. - + Removed use of backslash string continuations in source files. - - * Removed pandoc.cabal.ghc66. We now require Cabal >= 1.2, GHC >= 6.8, - base >= 3. - - * Require parsec < 3. - The compatibility module in parsec 3.0.0 gives far worse performance than - parsec 2.1. Eventually pandoc will be upgraded to use the new bytestring - version of parsec, and then we'll go to parsec 3.0.0. - - * Removed Text.Regex dependencies by rewriting using plain Haskell - (Text.Pandoc.Writers.RTF, Text.Pandoc.Writers.HTML, Main.hs) - - * Moved Text.Pandoc.Writers.DefaultHeaders -> Text.Pandoc.DefaultHeaders. - - * Makefile: - - + Added 'configure' as dependency of 'uninstall-all'. - (It uses the Cabal build program.) - + Makefile: only use --with-hc-pkg if GHC_PKG is defined. - Note that Cabal will automatically choose the ghc-pkg appropriate - for the compiler selected, so normally specifying GHC by itself - is sufficient. - - * Removed Text.Pandoc.UTF8 module; instead, depend on utf8-string and use - its IO and conversion functions. - - * Added -Wall to ghc-options in pandoc.cabal. Cleaned up modules so that - everything is -Wall clean. - - + Added pragma to HTML writer to avoid deprecation warning for use of "start" attribute. - + Added pragma to Text/Pandoc/Shared.hs to get rid of "orphan instance" warnings. - (These are caused by the Lift instance for ByteString.) - - * Changed the comment used to replace unsafe HTML if sanitize-html option - selected. - - * Made -c/--css option repeatable on the command line (like -H, -A, -B). - - * Moved XML-formatting functions to new unexported module Text.Pandoc.XML. - - * Escape '\160' as " ", not " " in XML. - "nbsp" isn't a predefined XML entity. - - * Fixed bug in RST reader, which would choke on: "p. one\ntwo\n". - Added some try's in ordered list parsers. - - * Man writer: don't escape " as \". - - * Allow newline before URL in markdown link references. Resolves Issue #81. - Added tests for this issue in new "markdown-reader-more" tests. - Changed RunTests.hs to run these tests. - - * Support for display math. Resolves Issue #47. - - + Added a DisplayMath/InlineMath selector to Math inlines. - + Markdown parser yields DisplayMath for $$...$$. - + LaTeX parser yields DisplayMath when appropriate. Removed - mathBlock parsers, since the same effect is achieved by the math - inline parsers, now that they handle display math. - + Writers handle DisplayMath as appropriate for the format. - + Modified tests accordingly; added new tests for display math. - - * Use LaTeXMathML instead of ASCIIMathML. LaTeXMathML is closer - to LaTeX in its display of math, and supports many non-math LaTeX environments. - - + Changed -m option to use LaTeXMathML rather than ASCIIMathML. - + Modified HTML writer to print raw TeX when LaTeXMathML is - being used instead of suppressing it. - + Removed ASCIIMathML files from data/ and added LaTeXMathML. - + Replaced ASCIIMathML with LaTeXMathML in source files. - + Modified README and pandoc man page source. - + Added --latexmathml option (kept --asciimathml as a synonym - for backwards compatibility) - - * Markdown reader: Parse setext headers before atx headers. - Test case: - # hi - ==== - parsed by Markdown.pl as an H1 header with contents "# hi". - - * Markdown reader: Treat "mixed" lists the same way as Markdown.pl does. - The marker on the first list item determines the type of the whole - list. Thus, a list like - 1. one - - two - * three - gets parsed as a single ordered list. (Previous versions of pandoc - treated this as an ordered list with an unordered sublist.) - - * Markdown smart typography: - - + Em dashes no longer eat surrounding whitespace. Resolves Issue #69. - + Use nonbreaking spaces after known abbreviations in markdown parser. - Thus, for example, "Mr. Brown" comes out as "Mr.~Brown" in LaTeX, and does - not produce a sentence-separating space. Resolves Issue #75. - - * Markdown writer: Print unicode \160 literally, rather than as . - - * Treat '\ ' in (extended) markdown as nonbreaking space. - Print nonbreaking space appropriately in each writer (e.g. ~ in LaTeX). - - * The '--sanitize-html' option now examines URIs in markdown links - and images, and in HTML href and src attributes. If the URI scheme - is not on a whitelist of safe schemes, it is rejected. The main point - is to prevent cross-site scripting attacks using 'javascript:' URIs. - See http://www.mail-archive.com/markdown-discuss@six.pairlist.net/msg01186.html - and http://ha.ckers.org/xss.html. Resolves Issue #62. - - * HTML writer: - - + Override Text.XHtml's stringToHtml function, - so that characters below 0xff are not converted to numerical entity - references. Also convert '\160' to " ". This should aid readability - and editability of the HTML source. It does presuppose that the HTML - will be served as UTF-8. - + In code blocks, change leading newlines to <br /> tags. - (Some browsers ignore them.) Resolves Issue #71. - See http://six.pairlist.net/pipermail/markdown-discuss/2008-May/001297.html - + Use style attributes rather than css classes for strikethrough - and ordered list styles. This works better when fragments, rather than - standalone documents, are generated. - - * HTML reader: Count anything that isn't a known block (HTML) tag as an - inline tag (rather than the other way around). Added "html", "head", and - "body" to list of block tags. Resolves Issue #66, allowing - <lj> to count as an inline tag. - - * RTF writer: Fixed bug. Extra spaces were being printed after emphasized, - boldface, and other inline elements. Resolves Issue #64. - - * LaTeX reader: improvements in raw LaTeX parsing. - - + "loose punctuation" (like {}) parsed as Space - + Para elements must contain more than Str "" and Space elements - + Added parser for "\ignore" command used in literate haskell. - + Reworked unknownCommand and rawLaTeXInline: when not in "parse raw" - mode, these parsers simply strip off the command part and allow - the arguments to be parsed normally. So, for example, - \blorg{\emph{hi}} will be parsed as Emph "hi" rather than - Str "{\\emph{hi}}". - + Parse lhs "code" environments as verbatim. - Refactored parsers for verbatim environments. - + Removed specialEnvironment parser. - + parse '{}', if present, after \textless, \textgreater, - \textbar, \textbackslash, \ldots. - + Parse unescaped special characters verbatim rather than - changing them to spaces. This way arguments of unknown - commands will appear in braces. - - * Parse raw ConTeXt environments as TeX in markdown reader. - Resolves Issue #73. - - * Moved BlockWrapper and wrappedBlocksToDoc from ConTeXt writer to Shared. - - * Made some structural changes to parsing of raw LaTeX environments. - Previously there was a special block parser for LaTeX environments. - It returned a Para element containing the raw TeX inline. This has - been removed, and the raw LaTeX environment parser is now used in the - rawLaTeXInline parser. The effect is exactly the same, except that we - can now handle consecutive LaTeX and ConTeXt environments not separated - by spaces. This new flexibility is required by the example in - Issue #73: - - \placeformula \startformula - L_{1} = L_{2} - \stopformula - - API change: The LaTeX reader now exports rawLaTeXEnvironment' (which - returns a string) rather than rawLaTeXEnvironment (which returns a block - element). This is more likely to be useful in other applications. - - * Use \textsubscr instead of \textsubscript for LaTeX subscript macro. - \textsubscript conflicts with a definition in the memoir class. - Resolves Issue #65. - - * Removed unneeded space after "\\item" in LaTeX and ConTeXt output. - - * Added amsmath package to default LaTeX header. Resolves Issue #48. - - * Added \setupitemize[autointro] to ConTeXt header, to prevent orphaned - list introduction lines. - - * Changed Float to Double in definition of Table element. - (Double is more efficient in GHC.) - - * Fixed bug in Markdown parser: regular $s triggering math mode. - For example: "shoes ($20) and socks ($5)." - The fix consists in two new restrictions: - - + the $ that ends a math span may not be directly followed by a digit. - + no blank lines may be included within a math span. - - Thanks to Joseph Reagle for noticing the bug. - - * Use Data.List's 'intercalate' instead of custom 'joinWithSep'. - Removed 'joinWithSep' from Text.Pandoc.Shared. - - * Updated README and man pages. Acknowledge contributors in README. - Added paragraph to README about producing S5 with separate CSS/javascript. - - * Updated INSTALL to reflect new build system (including configuration - options) and document new dependencies. Added note to INSTALL that - Cabal >= 1.2 is required for build. Resolves Issue #74. - - * Fixed some haddock documentation errors. - - * Small fix to markdown2pdf man page: only input needs to be piped through iconv. - -pandoc (0.46) unstable; urgency=low - - [ John MacFarlane ] - - * Made -H, -A, and -B options cumulative: if they are specified - multiple times, multiple files will be included. - - * Added optional HTML sanitization using a whitelist. - When this option is specified (--sanitize-html on the command line), - unsafe HTML tags will be replaced by HTML comments, and unsafe HTML - attributes will be removed. This option should be especially useful - for those who want to use pandoc libraries in web applications, where - users will provide the input. - - + Main.hs: Added --sanitize-html option. - - + Text.Pandoc.Shared: Added stateSanitizeHTML to ParserState. - - + Text.Pandoc.Readers.HTML: - - Added whitelists of sanitaryTags and sanitaryAttributes. - - Added parsers to check these lists (and state) to see if a given - tag or attribute should be counted unsafe. - - Modified anyHtmlTag and anyHtmlEndTag to replace unsafe tags - with comments. - - Modified htmlAttribute to remove unsafe attributes. - - Modified htmlScript and htmlStyle to remove these elements if - unsafe. - - + Modified README and man pages to document new option. - - * Improved handling of email addresses in markdown and reStructuredText. - Consolidated uri and email address parsers. (Resolves Issue #37.) - - + New emailAddress and uri parsers in Text.Pandoc.Shared. - - uri parser uses parseURI from Network.URI. - - emailAddress parser properly handles email addresses with periods - in them. - - + Removed uri and emailAddress parsers from Text.Pandoc.Readers.RST - and Text.Pandoc.Readers.Markdown. - - * Markdown reader: - - + Fixed emph parser so that "*hi **there***" is parsed as a Strong - nested in an Emph. (A '*' is only recognized as the end of the - emphasis if it's not the beginning of a strong emphasis.) - - + Moved blockQuote parser before list parsers for performance. - - + Modified 'source' parser to allow backslash-escapes in URLs. - So, for example, [my](/url\(1\)) yields a link to /url(1). - Resolves Issue #34. - - + Disallowed links within links. (Resolves Issue #35.) - - Replaced inlinesInBalanced with inlinesInBalancedBrackets, which - instead of hard-coding the inline parser takes an inline parser - as a parameter. - - Modified reference and inlineNote to use inlinesInBalancedBrackets. - - Removed unneeded inlineString function. - - Added inlineNonLink parser, which is now used in the definition of - reference. - - Added inlineParsers list and redefined inline and inlineNonLink parsers - in terms of it. - - Added failIfLink parser. - - + Better handling of parentheses in URLs and quotation marks in titles. - - 'source' parser first tries to parse URL with balanced parentheses; - if that doesn't work, it tries to parse everything beginning with - '(' and ending with ')'. - - source parser now uses an auxiliary function source'. - - linkTitle parser simplified and improved, under assumption that it - will be called in context of source'. - - + Make 'block' conditional on strictness state, instead of using - failIfStrict in block parsers. Use a different ordering of parsers - in strict mode (raw HTML block before paragraph) for performance. - In non-strict mode use rawHtmlBlocks instead of htmlBlock. - Simplified htmlBlock, since we know it's only called in strict - mode. - - + Improved handling of raw HTML. (Resolves Issue #36.) - - Tags that can be either block or inline (e.g. <ins>) should - be treated as block when appropriate and as inline when - appropriate. Thus, for example, - <ins>hi</ins> - should be treated as a paragraph with inline <ins> tags, while - <ins> - hi - </ins> - should be treated as a paragraph within <ins> tags. - - Moved htmlBlock after para in list of block parsers. This ensures - that tags that can be either block or inline get parsed as inline - when appropriate. - - Modified rawHtmlInline' so that block elements aren't treated as - inline. - - Modified para parser so that paragraphs containing only HTML tags and - blank space are not allowed. Treat these as raw HTML blocks instead. - - + Fixed bug wherein HTML preceding a code block could cause it to - be parsed as a paragraph. The problem is that the HTML parser - used to eat all blank space after an HTML block, including the - indentation of the code block. (Resolves Issue #39.) - - In Text.Pandoc.Readers.HTML, removed parsing of following space - from rawHtmlBlock. - - In Text.Pandoc.Readers.Markdown, modified rawHtmlBlocks so that - indentation is eaten *only* on the first line after the HTML - block. This means that in - <div> - foo - <div> - the foo won't be treated as a code block, but in - <div> - - foo - - </div> - it will. This seems the right approach for least surprise. - - * RST reader: - - + Fixed bug in parsing explicit links (resolves Issue #44). - The problem was that we were looking for inlines until a '<' character - signaled the start of the URL; so, if you hit a reference-style link, - it would keep looking til the end of the document. Fix: change - inline => (notFollowedBy (char '`') >> inline). Note that this won't - allow code inlines in links, but these aren't allowed in resT anyway. - - + Cleaned up parsing of reference names in key blocks and links. - Allow nonquoted reference links to contain isolated '.', '-', '_', so - so that strings like 'a_b_' count as links. - - + Removed unnecessary check for following link in str. - This is unnecessary now that link is above str in the definition of - 'inline'. - - * HTML reader: - - + Modified rawHtmlBlock so it parses </html> and </body> tags. - This allows these tags to be handled correctly in Markdown. - HTML reader now uses rawHtmlBlock', which excludes </html> and </body>, - since these are handled in parseHtml. (Resolves Issue #38.) - - + Fixed bug (emph parser was looking for `<IT>` tag, not `<I>`). - - + Don't interpret contents of style tags as markdown. - (Resolves Issue #40.) - - Added htmlStyle, analogous to htmlScript. - - Use htmlStyle in htmlBlockElement and rawHtmlInline. - - Moved "script" from the list of tags that can be either block or - inline to the list of block tags. - - + Modified rawHtmlBlock to use anyHtmlBlockTag instead of anyHtmlTag - and anyHtmlEndTag. This fixes a bug in markdown parsing, where - inline tags would be included in raw HTML blocks. - - + Modified anyHtmlBlockTag to test for (not inline) rather than - directly for block. This allows us to handle e.g. docbook in - the markdown reader. - - * LaTeX reader: Properly recognize --parse-raw in rawLaTeXInline. - Updated LaTeX reader test to use --parse-raw. - - * HTML writer: - - + Modified rules for automatic HTML header identifiers to - ensure that identifiers begin with an alphabetic character. - The new rules are described in README. (Resolves Issue #33.) - - + Changed handling of titles in HTML writer so you don't get - "titleprefix - " followed by nothing. - - * ConTeXt writer: Use wrappers around Doc elements to ensure proper - spacing. Each block element is wrapped with either Pad or Reg. - Pad'ed elements are guaranteed to have a blank line in between. - - * RST writer: - - + Refactored RST writer to use a record instead of a tuple for state, - and to include options in state so it doesn't need to be passed as - a parameter. - - + Use an interpreted text role to render math in restructuredText. - See http://www.american.edu/econ/itex2mml/mathhack.rst for the - strategy. - - [ Recai Oktaş ] - - * Debian packaging changes: - - + Remove the empty 'include' directory in -dev package, which lintian - complains about. - + Bump Standarts-Version to 3.7.3. - + Use new 'Homepage:' field to specify the upstream URL on suggestion of - lintian. - - -- Recai Oktaş <roktas@debian.org> Tue, 08 Jan 2008 05:13:31 +0200 - -pandoc (0.45) unstable; urgency=low - - [ John MacFarlane ] - - * Simplified parsing of reference keys and notes in markdown and RST - readers: The Reference data structure from Text.Pandoc.Shared is no - longer needed, since referenceKey and noteBlock parses return strings - (as many blank lines as were occupied by the key or note) and update - state themselves. getPosition and setPosition are now used to ensure - that error messages will give the correct line number. This yields - cleaner (and slightly faster) code, with more accurate parsing error - messages. - - * Added new Math inline element: - - + Markdown and LaTeX readers now convert TeX math into Math elements, - not TeX. - + This allows math to be treated differently from raw TeX in output. - TeX elements are no longer printed in output formats other than - Markdown, LaTeX, and ConTeXt. But Math elements are always printed. - - * New default handling of math in writers: - - + New module Text.Pandoc.Readers.TeXMath exports readTeXMath, which - parses raw TeX math and outputs a string of Pandoc inlines that - tries to render it as far as possible using unicode characters, - lapsing into literal TeX when needed. - + readTeXMath is now used for default HTML output in HTML, S5, RTF, - and Docbook, if no other method for displaying math in HTML is - specified. Enclosing $'s are no longer printed by default. - + By default, math is put inside `<span class="math">`. This way it can be - distinguished from the surrounding text, e.g. put in a different - font. - - * New --gladtex and --mimetex options for display of math in HTML: - - + If --gladtex is specified, math is output between `<eq>` tags, so - it can be processed by gladTeX. - + If --mimetex is specified, math is put in `<img>` tags with a link - to the mimetex CGI script (or any other script that takes TeX math - as input and outputs an image). The URL of the script may be - specified, but defaults to /cgi-bin/mimetex.cgi. - + HTMLMathMethod structure in WriterOptions keeps track of how to - display math in HTML output. - + Updated README with a description of the four options for displaying - math in HTML. - - * HTML reader: - - + Fixed bug: parser for minimized attributes should not swallow - trailing spaces. - + Simplified HTML attribute parsing. - + Changed parsing of code blocks in HTML reader: `<code>` tag is no - longer needed. `<pre>` suffices. All HTML tags in the code block - (e.g. for syntax highlighting) are skipped, because they are not - portable to other output formats. A `<code>...</code>` block not - surrounded by `<pre>` now counts as inline HTML, not a code block. - + Remove just one leading and one trailing newline from contents of - `<pre>...</pre>` in codeBlock parser. - - * Markdown reader: - - + Removed support for box-style block quotes. - + Require space before title in links and references. - This fixes a bug in parsing URLs like http://silly/url(withparen). - + Improved and simplified setextHeader parser. - + Fixed logic in smart quote parsing, adding some needed 'try' - statements. - + Fixed smart quote parsing so that unicode characters 8216 and 8217 - are recognized as single quotes, and 8220 and 8221 as double quotes. - - * RST reader: - - + Fixed bug in parsing of code blocks. Previously a full tab indent - was required, but RST allows code to be indented any amount. - Resolves Issue #27. - + Allow field lists to be indented. - + Parse the contents of field lists instead of treating as a raw string. - + Represent field lists as definition lists instead of blockquotes. - + Fixed bug in which metadata would be overridden if the document - contained multiple field lists. - + Parse fields associated with '.. image::' blocks, and use 'alt' - field, if given, for image alt and title attributes. - - * LaTeX reader: - - + Modified specialChar so that '"' characters are parsed. - + Fixed a bug in parsing of \[ \] math blocks (thanks to Mark Kalderon). - - * HTML writer: - - + Changes in handling of math (see above). - + Don't produce HTML for table of contents if there are - no headers. (This would be an empty list, which is invalid XHTML.) - - * Markdown writer: - - + Don't print title attribute if title is empty. (This differs from - the behavior of Markdown.pl, and agrees with PHP Markdown. But John - Gruber has indicated that he prefers this behavior.) Adjusted test - suite accordingly. - + Fixed incorrect line wrapping in paragraphs including hard line - breaks. Resolves Issue #25. - + Fixed bug in markdown writer: If an ordered list item began with - a marker greater than 3 characters in width, and the item took more - than one line, it would appear on the line after the list marker, - e.g.: - - (12) - My list item. - Multiline. - - Now it works as follows: - - (12) My list item. - Multiline. - - * RST writer - - + Fixed bug in RST writer's handling of ordered lists. Previously, - list items with multiple lines would not always line up with - single-line list items. Now, list items are nested the length of - the list marker + 1. This looks better and ensures that list items - all line up. (Note that list markers are padded to the length of - the longest list marker in the series.) - + Use 3-space indent for unordered lists. - + If label for a link reference contains a colon, surround it by ` - signs so it won't be interpreted as the end of the link label. - - * LaTeX writer: - - + Cleaner output for footnotes. Footnotes now always begin on a new - line, and the final } is on a line by itself only when it needs to - be (i.e. only when the note ends with a Verbatim environment). - + Added writer options to state, so state doesn't need to be passed as - a parameter. - + Text wrapping now provided, using wrapTeXIfNeeded. - - * ConTeXt writer: many improvements for more idiomatic ConTeXt output - (thanks to Idris Samawi Hamid for suggestions). - - + PrettyPrint module now used for output. - + Writer options are now in state, so they don't have to be passed as - a parameter. - + Text wrapping now provided, using wrapTeXIfNeeded. - + Better treatment of footnotes: footnotes are always on lines by - themselves, and the final } is on a line by itself only when - it needs to be (after \stoptyping). - + Use \subject, \subsubject, ... or \section, \subsection, ... for headings, - depending on whether --number-sections option is selected. - + Extra blank line inserted after \stopitemize - + Use new, "official" definition of blockquote environment. Also, use - blank line after \startblockquote to balance blank line at the end. - + Both itemized and enumerated lists are now generated using - \start-stopitemize, with appropriate options. Removed definitions - of ltxenum and ltxitem, which are no longer needed. Provided - defaults for itemized lists in the preamble. State keeps track of - ordered list level, so that when default numbering is specified, - the appropriate scheme can be used. - + Changed \useurl to \useURL. - + Changed link color from red to blue. - + Use \subsubsubsubsection etc., since these are supported - (up to at least sub x 5). - - * Text.Pandoc.Shared: - - + Save and restore position in parseFromString, so that accurate - error messages can be given. - + Improved efficiency of romanNumeral parser. - + Added wrappedTeX and wrapTeXIfNeeded functions. These ensure - that footnotes occur on lines by themselves (to make them - easier to see and move) and do not screw up line wrapping. - - * Text.Pandoc.UTF8: modified fromUTF8 to strip out the BOM - if present. Windows Notepad and other applications insert a - BOM at the beginning of a UTF8 file. - - * Main.hs (tabFilter): Treat '\r' at end of line as newline (in - addition to "\r\n" and '\n'). - - * Added a writer option for wrapped text and a command-line option - '--no-wrap', which disables text wrapping and minimizes whitespace - in HTML. (Resolves Issue #26.) - - + Added support for '--no-wrap' to Main.hs. - + Added wrapIfNeeded function to Text.Pandoc.Shared. - + Use wrapIfNeeded instead of wrapped in the RST, Man, Docbook, and - Markdown writers. - + Added render and renderFragment helpers to HTML writer. - - * Modified html2markdown to run tidy only if the HTML cannot be - parsed. Previously html2markdown piped all input through tidy - before passing it to pandoc. This caused problems on certain pages - (e.g. http://daringfireball.com/markdown) which have well-formed - XHTML that causes tidy to choke. The solution is to pipe through - tidy only if pandoc cannot parse the input by itself. This means - that a temp file is now always used, even when input comes from a - local file or standard input. - - * Removed 'version' constant from Main.hs; added 'pandocVersion' to - Text.Pandoc library. - - * pandoc.cabal: - - + Modified to work with GHC 6.8 and Cabal configurations. (For GHC - 6.8, pretty and containers must be added to Build-Depends, and it - is desirable to use the -O2 compiler option.) Cabal configurations - allows one to select options depending on the compiler version. - For GHC 6.6, the splitBase option can be disabled. - + pandoc.cabal.ghc66 is provided for users with older versions of - Cabal, which do not support configurations. - + Use Ghc-Prof-Options to ensure that '-auto-all' is used when - '--enable-(executable|library)-profiling' is specified. Updated - PROFILING instructions accordingly. - - * Makefile: - - + Makefile now checks GHC version. If GHC is 6.6, pandoc.cabal.ghc66 - is copied to pandoc.cabal, and the old pandoc.cabal is copied - to pandoc.cabal.orig. Otherwise, pandoc.cabal is copied to - pandoc.cabal.orig but otherwise unmodified. This way, the Makefile - will work properly with either GHC 6.6 or 6.8. - + Changed BUILDCONF to point to dist/setup-config, not .setup-config. - This is where current versions of Cabal put it. - + Added $(BUILDCMD) target, so setup doesn't get compiled every time. - + Removed dependency of templates on ./templates, which is circular - now that templates is a subdirectory of the top-level. - - * MacPorts Portfile: - - + Modified to install the pandoc library in addition to programs. - + Installation must be done manually rather than using Makefile's - install-all. - + Note that the library must be registered in the activate phase, - after the library files have been copied out of the destroot. - Cabal generates a 'register.sh' script that will do this. - - * debian/control: Added libghc6-network-dev, libghc6-xhtml-dev, and - libghc6-mtl-dev as dependencies for libghc6-pandoc-dev. - Closes: #445235 - - * debian/rules: Converted to UTF-8. - - * Changed pandoc home page to http://johnmacfarlane.net/pandoc/. - - * Updated ASCIIMathML.js to latest version. - - * Directory structure: - - + Moved everything from src into the top-level directory. - + Changed references to source directory in Makefile and - pandoc.cabal.*. - + Moved ASCIIMathML.js, headers, and ui into templates directory. - + Modified fillTemplates.pl to reflect new paths. - - [ Recai Oktaş ] - - * Makefile: Fixed the issue of having two copies of the library - documentation under some usage scenarios. - - * Replaced 'ghc' with '$(GHC)' in Makefile, and made GHC - and GHC_PKG configurable through the environment, to support - unusual ghc installations. For example: - GHC=/opt/ghc/bin/ghc GHC_PKG=/opt/ghc/bin/ghc-pkg make - - -- Recai Oktaş <roktas@debian.org> Sun, 07 Oct 2007 20:51:43 +0300 - -pandoc (0.44) unstable; urgency=low - - [ John MacFarlane ] - - * Fixed bug in HTML writer: when --toc was used, anchors were put around - headers, which is invalid XHTML (block content within inline element). - Now the anchors are put inside the header tags. Resolves Issue #23. - - * Added xmlns attribute to html element in html writer tests. - This attribute is added by more recent versions of the - xhtml library (>= 3000), and is required for valid XHTML. - - [ Recai Oktaş ] - - * On configure, compile 'Setup.hs' to 'setup' and use 'setup' as the build - command instead of 'runhaskell', which, on some platforms (such as s390, - alpha, m68k), throws the following error: - - runhaskell Setup.hs configure --prefix=/usr - ghc-6.6.1: not built for interactive use - - This causes a serious FTBFS bug. Closes: #440668. - - -- Recai Oktaş <roktas@debian.org> Mon, 03 Sep 2007 18:24:02 +0300 - -pandoc (0.43) unstable; urgency=low - - [ John MacFarlane ] - - * The focus of this release is performance. The markdown parser - is about five times faster than in 0.42, based on benchmarks - with the TextMate manual. - - * Main.hs: Replaced CRFilter and tabFilter with single function - tabFilter, which operates on the whole string rather than breaking - it into lines, and handles dos-style line-endings as well as tabs. - - * Added separate LaTeX reader and native reader tests; removed - round-trip tests. - - * Text.Pandoc.Shared: - - + Removed tabsToSpaces and tabsInLine (they were used only in Main.hs.) - + General code cleanup (to elimante warnings when compiling with -Wall.) - + Added 'wrapped' function, which helps wrap text into paragraphs, - using the prettyprinting library. - + Rewrote charsInBalanced and charsInBalanced'. - - Documented restriction: open and close must be distinct characters. - - Rearranged options for greater efficiency. - - Bug fix: Changed inner call to charsInBalanced inside - charsInBalanced' to charsInBalanced'. - + anyLine now requires that the line end with a newline (not eof). - This is a harmless assumption, since we always add newlines to the - end of a block before parsing with anyLine, and it yields a 10% speed - boost. - + Removed unnecessary 'try' in anyLine. - + Removed unneeded 'try' from romanNumeral parser. - + Use notFollowedBy instead of notFollowedBy' in charsInBalanced. - + Removed unneeded 'try' in parseFromString. - + Removed unneeded 'try' from stringAnyCase. (Now it behaves - like 'string'.) - + Changed definition of 'enclosed' in Text.Pandoc.Shared so that - 'try' is not automatically applied to the 'end' parser. Added - 'try' in calls to 'enclosed' where needed. Slight speed increase. - - * Writers: - - + Replaced individual wrapping routines in RST, Man, and Markdown - writers with 'wrapped' from Text.Pandoc.Shared. - + Rewrote LaTeX writer to use the prettyprinting library, - so we get word wrapping, etc. - + Modified latex writer tests for new latex writer using prettyprinter. - + Fixed bug in LaTeX writer: autolinks would not cause - '\usepackage{url}' to be put in the document header. Also, changes - to state in enumerated list items would be overwritten. - + In Markdown writer, escape paragraphs that begin with ordered list - markers, so they don't get interpreted as ordered lists. - - * Text.Pandoc.Reades.LaTeX: - - + Fixed bug in LaTeX reader, which wrongly assumed that the roman - numeral after "enum" in "setcounter" would consist entirely of - "i"s. 'enumiv' is legitimate. - + LaTeX command and environment names can't contain numbers. - + Rearranged order of parsers in inline for slight speed improvement. - + Added '`' to special characters and 'unescapedChar'. - - * Text.Pandoc.Readers.RST: - - + Removed unneeded try's in RST reader; also minor code cleanup. - + Removed tabchar. - + Rearranged parsers in inline (doubled speed). - - * Text.Pandoc.Readers.Markdown: - - + Skip notes parsing if running in strict mode. (This yields a nice - speed improvement in strict mode.) - + Simplify autolink parsing code, using Network.URI to test for - URIs. Added dependency on network library to debian/control and - pandoc.cabal. - + More perspicuous definition of nonindentSpaces. - + Removed unneeded 'try' in 'rawLine'. - + Combined linebreak and whitespace into a new whitespace parser, to - avoid unnecessary reparsing of space characters. - + Removed unnecessary 'try' in 'codeBlock', 'ellipses', 'noteMarker', - 'multilineRow', 'dashedLine', 'rawHtmlBlocks'. - + Use lookAhead in parsers for setext headers and definition lists - to see if the next line begins appropriately; if not, don't waste - any more time parsing. - + Don't require blank lines after code block. (It's sufficient to - end code block with a nonindented line.) - + Changed definition of 'emph': italics with '_' must not - be followed by an alphanumeric character. This is to help - prevent interpretation of e.g. `[LC_TYPE]: my_type` as - `[LC<em>TYPE]:my</em>type`. - + Improved Markdown.pl-compatibility in referenceLink: the two parts - of a reference-style link may be separated by one space, but not - more... [a] [link], [not] [a link]. - + Fixed markdown inline code parsing so it better accords with - Markdown.pl: the marker for the end of the code section is a clump - of the same number of `'s with which the section began, followed - by a non-` character. So, for example, - ` h ``` i ` -> `<code>h ``` i</code>`. - + Split 'title' into 'linkTitle' and 'referenceTitle', since the - rules are slightly different. - + Rewrote 'para' for greater efficiency. - + Rewrote link parsers for greater efficiency. - + Removed redundant 'referenceLink' in definition of inline (it's - already in 'link'). - + Refactored escapeChar so it doesn't need 'try'. - + Refactored hrule for performance in Markdown reader. - + More intelligent rearranging of 'inline' so that most frequently - used parsers are tried first. - + Removed tabchar parser, as whitespace handles tabs anyway. - - * Text.Pandoc.CharacterReferences: - - + Refactored. - + Removed unnecessary 'try's for a speed improvement. - + Removed unnecessary '&' and ';' from the entity table. - - * Build process: - - + Makefile: Get VERSION from cabal file, not Main.hs. - + Modified MacPorts Portfile: - - Depend on haddock - - Build and install libraries and library documentation in - addition to pandoc executable - - Added template item for md5 sum in Portfile.in. - - Incorporated changes from MacPorts repository (r28278). - + FreeBSD port: Don't try to generate distinfo in Makefile. - It can be made using 'make makesum' in FreeBSD. - + Make both freebsd and macports targets depend on tarball. - - * Website and documentation: - - + Updated INSTALL instructions. - + Added pandocwiki demo to website. - + Removed local references to Portfile, since pandoc is now in the - MacPorts repository. - - -- Recai Oktaş <roktas@debian.org> Sun, 02 Sep 2007 15:50:11 +0300 - -pandoc (0.42) unstable; urgency=low - - [ John MacFarlane ] - - * Main.hs: Use utf8 conversion on the extra files loaded with - the -H, -C, -B, and -A options. This fixes problems with unicode - characters in these files. - - * Exposed Text.Pandoc.ASCIIMathML, since it is imported in - Text.Pandoc.Readers.HTML and without it we get a linking error when - using the library. - - * Markdown reader: - - + Added new rule for enhanced markdown ordered lists: if the list - marker is a capital letter followed by a period (including a - single-letter capital roman numeral), then it must be followed by - at least two spaces. The point of this is to avoid accidentally - treating people's initials as list markers: a paragraph might begin, - "B. Russell was an English philosopher," and this shouldn't be - treated as a list. Documented change in README. - + Blocks that start with "p. " and a digit are no longer treated - as ordered lists (it's a page number). - + Added a needed 'try' to listItem. - + Removed check for a following setext header in endline. - A full test is too inefficient (doubles benchmark time), and the - substitute we had before is not 100% accurate. - + Don't use Code elements for autolinks if --strict specified. - - * LaTeX writer: When a footnote ends with a Verbatim environment, the - close } of the footnote cannot occur on the same line or an error occurs. - Fixed this by adding a newline before the closing } of every footnote. - - * HTML writer: - + Removed incorrect "{}" around style information in HTML tables. - Column widths now work properly in HTML. - + If --strict option is specified (and --toc is not), don't include - identifiers in headers, for better Markdown compatibility. - - * Build process: - - + Separated $(web_dest) and website targets. - + In website, index.txt is now constructed from template index.txt.in. - + Added freebsd target to Markefile. This creates the freebsd Makefile - from Makefile.in, and creates distinfo. Removed Makefile and distinfo - from the repository. - + Added macport target to Makefile. Portfile is built from template - Portfile.in. - + Removed OSX package targets. (Too many difficulties involving - dependencies on dynamic libraries.) - + More complete INSTALL instructions for all architectures. - - * Website: - + Added a programming demo, pandocwiki. - - [ Recai Oktaş ] - - * Do not forget to close pandoc's ITP. Closes: #391666 - - -- Recai Oktaş <roktas@debian.org> Sun, 26 Aug 2007 22:51:32 +0300 - -pandoc (0.41) unstable; urgency=low - - [ John MacFarlane ] - - * Fixed bugs in HTML reader: - + Skip material at end *only if* `</html>` is present (previously, - only part of the document would be parsed if an error was - found; now a proper error message is given). - + Added new constant eitherBlockOrInline with elements that may - count either as block-level or as inline. Modified isInline and - isBlock to take this into account. - + Modified rawHtmlBlock to accept any tag (even an inline tag): - this is innocuous, because rawHtmlBlock is tried only if a regular - inline element can't be parsed. - + Added a necessary 'try' in definition of 'para'. - - * Fixed bug in markdown ordered list parsing. The problem was that - anyOrderedListStart did not check for a space following the - ordered list marker. So in 'A.B. 2007' the parser would be - expecting a list item, but would not find one, causing an error. - Fixed a similar bug in the RST reader. Resolves Issue #22. - - * Refactored RST and Markdown readers using parseFromString. - - * LaTeX reader will now skip anything after \end{document}. - - * Fixed blockquote output in markdown writer: previously, block - quotes in indented contexts would be indented only in the first - line. - - * Added note to INSTALL about variations in versions of the xhtml - library that can lead to failed tests (thanks to Leif LeBaron). - - -- Recai Oktaş <roktas@debian.org> Sun, 19 Aug 2007 23:26:07 +0300 - -pandoc (0.4) unstable; urgency=low - - [ John MacFarlane ] - - * Added two new output formats: groff man pages and ConTeXt. By - default, output files with extensions ".ctx" and ".context" are - assumed to be ConTeXt, and output files with single-digit extensions - are assumed to be man pages. - - * Enhanced ordered lists (documented in README, under Lists): - + The OrderedList block element now stores information about - list number style, list number delimiter, and starting number. - + The readers parse this information when possible. - + The writers use this information to style ordered lists. - + The enhancement can be disabled using the --strict option. - - * Added support for tables (with a new Table block element). Two kinds - of tables are supported: a simple table with one-line rows, and a - more complex variety with multiline rows. All output formats are - supported, but only markdown tables are parsed at the moment. The - syntax is documented in README. - - * Added support for definition lists (with a new DefinitionList block - element). All output and input formats are supported. The syntax is - documented in README. - - * Added support for superscripts and subscripts (with new Superscript - and Subscript inline elements). All input and output - formats. The syntax is documented in README. - - * Added support for strikeout (with a new Strikeout inline element). - All input and output formats are supported. Thanks to Bradley Kuhn, - who contributed a patch. The syntax is documented in README. Resolves - Issue #18. - - * Added a --toc|--table-of-contents option. This causes an automatically - generated table of contents (or an instruction that creates one) to - be inserted at the beginning of the document. Not supported in S5, - DocBook, or man page writers. - - * Modified the -m|--asciimathml option: - - + If an optional URL argument is provided, a link is inserted - instead of the contents of the ASCIIMathML.js script. - + Nothing is inserted unless the document actually contains - LaTeX math. - - * Removed Blank block element as unnecessary. - - * Removed Key and Note blocks from the Pandoc data structure. All - links are now stored as explicit links, and note contents are - stored with the (inline) notes. - - + All link Targets are now explicit (URL, title) pairs; there - is no longer a 'Ref' target. - + Markdown and RST parsers now need to extract data from key and - note blocks and insert them into the relevant inline elements. - Other parsers have been simplified, since there is no longer any need - to construct separate key and note blocks. - + Markdown, RST, and HTML writers need to construct lists of - notes; Markdown and RST writers need to construct lists of link - references (when the --reference-links option is specified); and - the RST writer needs to construct a list of image substitution - references. All writers have been rewritten to use the State monad - when state is required. - + Several functions (generateReference, keyTable, - replaceReferenceLinks, replaceRefLinksBlockList, and some auxiliaries - used by them) have been removed from Text.Pandoc.Shared, since - they are no longer needed. New functions and data structures - (Reference, isNoteBlock, isKeyBlock, isLineClump) have been - added. The functions inTags, selfClosingTag, inTagsSimple, and - inTagsIndented have been moved to the DocBook writer, since that - is now the only module that uses them. NoteTable is now exported - in Text.Pandoc.Shared. - + Added stateKeys and stateNotes to ParserState; removed stateKeyBlocks, - stateKeysUsed, stateNoteBlocks, stateNoteIdentifiers, stateInlineLinks. - + Added writerNotes and writerReferenceLinks to WriterOptions. - - * Added Text.Pandoc module that exports basic readers, writers, - definitions, and utility functions. This should export everything - needed for most uses of Pandoc libraries. The haddock documentation - includes a short example program. - - * Text.Pandoc.ASCIIMathML is no longer an exported module. - - * Added Text.Pandoc.Blocks module to help in printing markdown - and RST tables. This module provides functions for working with - fixed-width blocks of text--e.g., placing them side by side, as - in a table row. - - * Refactored to avoid reliance on Haskell's Text.Regex library, which - (a) is slow, and (b) does not properly handle unicode. This fixed - some strange bugs, e.g. in parsing S-cedilla, and improved performance. - - + Replaced 'gsub' with a general list function 'substitute' - that does not rely on Text.Regex. - + Rewrote extractTagType in HTML reader so that it doesn't use - regexs. - + In Markdown reader, replaced email regex test with a custom email - autolink parser (autoLinkEmail). Also replaced selfClosingTag regex - with a custom function isSelfClosingTag. - + Modified Docbook writer so that it doesn't rely on Text.Regex for - detecting 'mailto' links. - + Removed escapePreservingRegex and reamped entity-handling - functions in Text.Pandoc.Shared and Text.Pandoc.CharacterReferences to - avoid reliance on Text.Regex (see below on character reference - handling changes). - - * Renamed Text.Pandoc.Entities as Text.Pandoc.CharacterReferences. - - * Changed handling of XML entities. Entities are now parsed (and unicode - characters returned) in the Markdown and HTML readers, rather than being - handled in the writers. In HTML and Docbook writers, UTF-8 is now used - instead of entities for characters above 128. This makes the HTML and - DocBook output much more readable and more easily editable. - - + Removed sgmlHexEntity, sgmlDecimalEntity, sgmlNamedEntity, and - sgmlCharacterEntity regexes from Text.Pandoc.Shared. - + Renamed escapeSGMLChar to escapeCharForXML. Added escapeStringForXML. - Moved both functions to Text.Pandoc.Writers.Docbook. - + Added characterReference parser to Text.Pandoc.CharacterReferences. - This parses a string and return a unicode character. - + Rewrote decodeCharacterReferences to use the new parser instead of - Text.Regex. - + Added new charRef parser for Markdown and HTML, which replaces the - old 'entity' parser. Added '&' as a special character in Markdown reader. - + Modified HTML and Markdown readers to call decodeEntities on all raw - strings (e.g. authors, dates, link titles), to ensure that no - unprocessed entities are included in the native representation of - the document. (In the HTML reader, most of this work is done by a - change in extractAttributeName.) - + In XML and Markdown output, escape unicode nonbreaking space as ' ', - since a unicode non-breaking space is impossible to distinguish visually - from a regular space. (Resolves Issue #3.) - + Removed encodeEntitiesNumerical. - + Use Data.Map for entityTable and (new) reverseEntityTable, for a - slight performance boost over the old association list. - + Removed unneeded decodeEntities from 'str' parser in HTML and - Markdown readers. - - * Text.Pandoc.UTF8: Renamed encodeUTF8 to toUTF8, decodeUTF8 to - fromUTF8, for clarity. - - * Replaced old haskell98 module names replaced by hierarchical module - names, e.g. List by Data.List. Removed haskell98 from dependencies - in pandoc.cabal, and added mtl (needed for state monad). Substituted - xhtml for html. - - * Refactored and cleaned up character escaping in writers, using - backslashEscapes and escapeStringUsing functions. - - * Instead of adding "\n\n" to the end of an input string in Main.hs, - this is now done in the readers. This makes the libraries behave - the way you'd expect from the pandoc program. Resolves Issue #10. - - * URLs and email addresses in autolinks are now typeset as Code. - - * In Main.hs, changed putStr to putStrLn -- mainly because MacOS X - doesn't display the whole output unless there's a line ending. - - * Major code cleanup in all modules, for greater consistency, concision, - and readability. - - * HTML reader: - - + Fixed several bugs (extractTagType, attribute parsing). - + Remove Null blocks in lists of blocks when possible. - + Allow HTML comments as raw HTML inline. - - * Markdown reader: - - + Ordered list items may no longer begin with uppercase letters, or - letters greater than 'n'. (This prevents first initials and page - reference, e.g. 'p. 400', from being parsed as beginning lists.) - Also, numbers beginning list items may no longer end with ')', - which is now allowed only after letters. Note: These changes - may cause documents to be parsed differently. Users should take - care in upgrading. - + Changed autoLink parsing to conform better to Markdown.pl's - behavior. `<google.com>` is not treated as a link, but - `<http://google.com>`, `<ftp://google.com>`, and - `<mailto:google@google.com>` are. - + Cleaned up handling of embedded quotes in link titles. Now these are - stored as a '"' character, not as '"'. - + Use lookAhead parser for the 'first pass' (looking for reference keys), - instead of parsing normally, then using setInput to reset input. This - yields a slight performance boost. - + Fixed several bugs in smart quote recognition. - + Fixed bug in indentSpaces (which didn't properly handle - cases with mixed spaces and tabs). - + Consolidated 'text', 'special', and 'inline' into 'inline'. - + Fixed bug which allowed URL and title to be separated by multiple blank - lines in links and reference keys. They can be on separate lines but - can't have blank lines between them. - + Correctly handle bracketed text inside inline footnotes and links,using - new function inlinesInBalanced. Resolves Issue #14. - + Fixed bug in footnotes: links in footnotes were not being - processed. Solution: three-stage parse. First, get all the - reference keys and add information to state. Next, get all the - notes and add information to state. (Reference keys may be needed - at this stage.) Finally, parse everything else. - + Replaced named constants like 'emphStart' with literals. - + Removed an extra occurrence of escapedChar in definition of inline. - - * RST reader: - - + Allow the URI in a RST hyperlink target to start on the line - after the reference key. - + Added 'try' in front of 'string', where needed, or used a different - parser. This fixes a bug where ````` would not be correctly parsed as - a verbatim `. - + Fixed slow performance in parsing inline literals in RST reader. The - problem was that ``#`` was seen by 'inline' as a potential link or image. - Fix: inserted 'notFollowedBy (char '`')' in link parsers. - Resolves Issue #8. - + Use lookAhead instead of getInput/setInput in RST reader. Removed - unneeded getState call, since lookAhead automatically saves and - restores the parser state. - + Allow hyperlink target URIs to be split over multiple lines, and - to start on the line after the reference. Resolves Issue #7. - + Fixed handling of autolinks. - - * LaTeX reader: - - + Replaced 'choice [(try (string ...), ...]' idiom with 'oneOfStrings', - for clarity. - + Added clauses for tilde and caret. Tilde is \ensuremath{\sim}, and - caret is \^{}, not \^ as before. - + Added parsing for \url. - + Parse \texttt{} as code, provided there's nothing fancy inside. - - * HTML writer: - - + Modified HTML writer to use the Text.XHtml library. This results - in cleaner, faster code, and it makes it easier to use Pandoc in - other projects, like wikis, which use Text.XHtml. Two functions are - now provided, writeHtml and writeHtmlString: the former outputs an - Html structure, the latter a rendered string. The S5 writer is also - changed, in parallel ways (writeS5, writeS5String). - + The Html header is now written programmatically, so it has been - removed from the 'headers' directory. The S5 header is still - needed, but the doctype and some of the meta declarations have - been removed, since they are written programmatically. This change - introduces a new dependency on the xhtml package. - + Fixed two bugs in email obfuscation involving improper escaping - of '&' in the `<noscript>` section and in `--strict` mode. Resolves - Issue #9. - + Fixed another bug in email obfuscation: If the text to be obfuscated - contains an entity, this needs to be decoded before obfuscation. - Thanks to thsutton for the patch. Resolves Issue #15. - + Changed the way the backlink is displayed in HTML footnotes. - Instead of appearing on a line by itself, it now generally - appears on the last line of the note. (Exception: when the - note does not end with a Plain or Para block.) This saves space - and looks better. - + Added automatic unique identifiers to headers: - - The identifier is derived from the header via a scheme - documented in README. - - WriterState now includes a list of header identifiers and a table - of contents in addition to notes. - - The function uniqueIdentifiers creates a list of unique identifiers - from a list of inline lists (e.g. headers). - - This list is part of WriterState and gets consumed by blockToHtml - each time a header is encountered. - + Include CSS for .strikethrough class in header only if strikethrough - text appears in the document. - + If the 'strict' option is specified, elements that do not appear in - standard markdown (like definition lists) are passed through as - raw HTML. - + Simplified treatment of autolinks, using pattern matching instead of - conditionals. - - * Markdown writer: - - + Links in markdown output are now printed as inline links by default, - rather than reference links. A --reference-links option has been added - that forces links to be printed as reference links. Resolves Issue #4. - + Use autolinks when possible. Instead of `[site.com](site.com)`, - use `<site.com>`. - - * LaTeX writer: - - + Rewrote to use the State monad. The preamble now includes only those - packages that are actually required, given the document's content. - Thus, for example, if strikeout is not used, ulem is not required. - Modified LaTeXHeader accordingly. - + Modified LaTeX writer to insert '\,' between consecutive quotes. - + Removed unused function tableRowColumnWidths. - + Simplified code for escaping special characters. - + Leave extra blank line after \maketitle. - + Include empty '\author{}' when no author specified to avoid LaTeX - errors. - + Include fancyvrb code in header only if needed -- that is, only - if there is actually code in a footnote. - + Use \url{} for autolinks. - + Include [mathletters] option in ucs package, so that basic unicode - Greek letters will work correctly. - - * RST writer: Force blank line before lists, so that sublists will - be handled correctly. - - * Docbook writer: Fixed a bug: email links with text, like - [foo](me@bar.baz), were being incorrectly treated as autolinks. - - * Removed Text.ParserCombinators.Pandoc and moved all its functions to - Text.Pandoc.Shared. - - * Text.Pandoc.Shared: - - + Added defaultWriterOptions. - + Added writerTableOfContents to WriterOptions. - + Added writerIgnoreNotes option to WriterOptions. This is needed - for processing header blocks for a table of contents, since notes on - headers should not appear in the TOC. - + Added prettyprinting for native Table format. - + Removed some unneeded imports. - + Moved escape and nullBlock parsers from - Text.ParserCombinators.Pandoc, since the latter is for - general-purpose parsers that don't depend on Text.Pandoc.Definition. - + Moved isHeaderBlock from Text.Pandoc.Writers.HTML. - + Moved Element, headerAtLeast, and hierarchicalize from Docbook - writer, because HTML writer now uses these in constructing a table - of contents. - + Added clauses for new inline elements (Strikeout, Superscript, - Subscript) to refsMatch. - + Removed backslashEscape; added new functions escapeStringUsing and - backslashEscapes. - + Moved failIfStrict from markdown reader, since it is now used also - by the HTML reader. - + Added a 'try' to the definition of indentSpaces. - + In definition of 'reference', added check to make sure it's not a note - reference. - + Added functions: camelCaseToHyphenated, toRomanNumeral, - anyOrderedListMarker, orderedListmarker, orderedListMarkers, - charsInBalanced', withHorizDisplacement, romanNumeral - + Fixed a bug in the anyLine parser. Previously it would parse an empty - string "", but it should fail on an empty string, or we get an error - when it is used inside "many" combinators. - + Removed followedBy' parser, replacing it with the lookAhead parser from - Parsec. - + Added some needed 'try's before multicharacter parsers, especially in - 'option' contexts. - + Removed the 'try' from the 'end' parser in 'enclosed', so that - 'enclosed' behaves like 'option', 'manyTill', etc. - + Added lineClump parser, which parses a raw line block up to and - including any following blank lines. - + Renamed parseFromStr to parseFromString. - + Added a 'try' to the 'end' parser in 'enclosed'. This makes errors in - the use of 'enclosed' less likely. Removed some now-unnecessary 'try's - in calling code. - + Removed unneeded 'try' in blanklines. - + Removed endsWith function and rewrote calling functions to use - isSuffixOf instead. - + Added >>~ combinator. - + Fixed bug in normalizeSpaces: Space:Str "":Space should compress to - Space. - - * Refactored runtests.pl; added separate tests for tables. - - * Shell scripts: - - + Added -asxhtml flag to tidy in html2markdown. This will - perhaps help the parser, which expects closing tags. - + Modified markdown2pdf to run pdflatex a second time if --toc or - --table-of-contents was specified; otherwise the table of - contents won't appear. - + Modified markdown2pdf to print a helpful message if the 'ulem' - LaTeX package is required and not found. - - * Changes to build process: - - + Dropped support for compilation with GHC 6.4. GHC 6.6 or higher - is now required. - + Removed cabalize and Pandoc.cabal.in. The repository now contains - pandoc.cabal itself. - + Pandoc.cabal has been changed to pandoc.cabal, because HackageDB - likes the cabal file to have the same name as the tarball. - + Expanded and revised the package description in pandoc.cabal. - Revised the package synopsis. - + The tarball built by 'make tarball' now contains files built from - templates (including man pages and shell scripts), so pandoc can - be built directly using Cabal tools, without preprocessing. - + Executable binaries are now stripped before installing. - + Man pages are now generated from markdown sources, using pandoc's - man page writer. - + Use HTML version of README (instead of RTF) in Mac OS X installer. - + Instead of testing for the existence of a pandoc symlink in build-exec, - use ln -f. - - * Documentation: - - + Updated README and man pages with information on new features. - + Updated INSTALL instructions with some useful clarifications and - links. - + Updated web content. - - * Added FreeBSD port. - - [ Recai Oktaş ] - - * debian/control: - - + Changed pandoc's Build-Depends to include libghc6-mtl-dev and - libghc6-xhtml-dev. Removed libghc6-html-dev. - + Suggest texlive-latex-recommended | tetex-extra instead of - tetex-bin. This brings in fancyvrb and unicode support. - - -- Recai Oktaş <roktas@debian.org> Tue, 16 Jan 2007 00:37:21 +0200 - -pandoc (0.3) unstable; urgency=low - - [ John MacFarlane ] - - * Changes in pandoc options: - - + Allow options to follow or precede arguments. - + Changed '--smartypants' to '--smart' and adjusted symbols accordingly. - + Added '--strict' option. - + Added '-o/--output' option. - + Added '--dump-args' and '--ignore-args' options (for use in wrappers). - + Modified '-v' and '-h' output to go to STDERR, not STDOUT, and return - error conditions. This is helpful for writing wrappers. - + Added copyright message to '-v' output, modeled after FSF messages. - + Reformatted usage message so that it doesn't wrap illegibly. - + Removed extra blanks after '-h' and '-D' output. - - * Added docbook writer. - - * Added implicit setting of default input and output format based - on input and output filename extensions. These defaults are - overridden if explicit input and output formats are specified using - '-t', '-f', '-r', or '-w' options. Documented in pandoc(1) man page - and README. - - * Allow ordered list items to begin with (single) letters, as well - as numbers. The list item marker may now be terminated either by - '.' or by ')'. This extension to standard markdown is documented - in README. - - * Revised footnote syntax. (See README for full details.) The - '[^1]' format now standard in markdown extensions is supported, - as are inline footnotes with this syntax: `^[My note.]`. - The earlier footnote syntax `^(1)` is no longer supported. - - * Improved HTML representation of footnotes. All footnotes - are now auto-numbered and appear in an ordered list at the - end of the HTML document. Since the default appearance is now - acceptable, the old footnote styles have been removed from the - HTML header. - - * Bug fixes: - - + Fixed a serious bug in the markdown, LaTeX, and RST readers. - These readers ran 'runParser' on processed chunks of text to handle - embedded block lists in lists and quotation blocks. But then - any changes made to the parser state in these chunks was lost, - as the state is local to the parser. So, for example, footnotes - didn't work in quotes or list items. The fix: instead of calling - runParser on some raw text, use setInput to make it the input, then - parse it, then use setInput to restore the input to what it was - before. This is shorter and more elegant, and it fixes the problem. - + Fixed bug in notFollowedBy' combinator (adding 'try' before - 'parser'). Adjusted code that uses this combinator accordingly. - + Fixed bug in RTF writer that caused improper indentation on - footnotes occurring in indented blocks like lists. - + Fixed parsing of metadata in LaTeX reader. Now the title, author, - and date are parsed correctly. Everything else in the preamble - is skipped. - + Modified escapedChar in LaTeX reader to allow a '\' at the end of a - line to count as escaped whitespace. - + Modified LaTeX reader to produce inline links rather than reference - links. Otherwise, links in footnotes aren't handled properly. - + Fixed handling of titles in links in Markdown reader, so that - embedded quotation marks are now handled properly. - + Fixed Markdown reader's handling of embedded brackets in links. - + Fixed Markdown reader so that it only parses bracketed material - as a reference link if there is actually a corresponding key. - + Revised inline code parsing in Markdown reader to conform to - markdown standard. Now any number of `s can begin inline code, - which will end with the same number of `s. For example, to - have two backticks as code, write ``` `` ```. Modified Markdown - writer accordingly. - + Fixed bug in text-wrapping routine in Markdown and RST writers. - Now LineBreaks no longer cause wrapping problems. - + Supported hexadecimal numerical entity references as well as - decimal ones. - + Fixed bug in Markdown reader's handling of underscores and other - inline formatting markers inside reference labels: for example, - in '[A_B]: /url/a_b', the material between underscores was being - parsed as emphasized inlines. - + Changed Markdown reader's handling of backslash escapes so that - only non-alphanumeric characters can be escaped. Strict mode - follows Markdown.pl in only allowing a select group of punctuation - characters to be escaped. - + Modified HTML reader to skip a newline following a `<br>` tag. - Otherwise the newline will be treated as a space at the beginning - of the next line. - - * Made handling of code blocks more consistent. Previously, some - readers allowed trailing newlines, while others stripped them. - Now, all readers strip trailing newlines in code blocks. Writers - insert a newline at the end of code blocks as needed. - - * Modified readers to make spacing at the end of output more consistent. - - * Minor improvements to LaTeX reader: - - + '\thanks' now treated like a footnote. - + Simplified parsing of LaTeX command arguments and options. - commandArgs now returns a list of arguments OR options (in - whatever order they appear). The brackets are included, and - a new stripFirstAndLast function is provided to strip them off - when needed. This fixes a problem in dealing with \newcommand - and \newenvironment. - - * Revised RTF writer: - - + Default font is now Helvetica. - + An '\f0' is added to each '\pard', so that font resizing works - correctly. - - * Moved handling of "smart typography" from the writers to the Markdown - and LaTeX readers. This allows great simplification of the writers - and more accurate smart quotes, dashes, and ellipses. DocBook can - now use `<quote>`. The '--smart' option now toggles an option in - the parser state rather than a writer option. Several new kinds - of inline elements have been added: Quoted, Ellipses, Apostrophe, - EmDash, EnDash. - - * Changes in HTML writer: - - + Include title block in header even when title is null. - + Made javascript obfuscation of emails even more obfuscatory, - by combining it with entity obfuscation. - - * Changed default ASCIIMathML text color to black. - - * Test suite: - - + Added --strip-trailing-cr option to diff in runtests.pl, for - compatibility with Windows. - + Added regression tests with footnotes in quote blocks and lists. - - * Makefile changes: - - + osx-pkg target creates a Mac OS X package (directory). New osx - directory contains files needed for construction of the package. - + osx-dmg target creates a compressed disk image containing the package. - + win-pkg target creates Windows binary package. - + tarball target creates distribution source tarball. - + website target generates pandoc's website automatically, including - demos. New 'web' directory contains files needed for construction - of the website (which will be created as the 'pandoc' subdirectory - of 'web'). - + Makefile checks to see if we're running Windows/Cygwin; if so, - a '.exe' extension is added to each executable in EXECS. - - * Removed all wrappers except markdown2pdf and html2markdown. - - * Added new wrapper hsmarkdown, to be used as a drop-in replacement - for Markdown.pl. hsmarkdown calls pandoc with the '--strict' - option and disables other options. - - * Added code to html2markdown that tries to determine the character - encoding of an HTML file, by parsing the "Content-type" meta tag. - - + If the encoding can't be determined, then if the content is local, - the local encoding is used; if it comes from a URL, UTF-8 is used - by default. - + If input is from STDIN, don't try to determine character encoding. - + Encoding can be specified explicitly using '-e' option. - - * Improved warning messages in wrappers: - - + Print warning if iconv not available - + More user-friendly error messages in markdown2pdf, when - pdflatex fails. - - * Code cleanup: - - + Renamed 'Text/Pandoc/HtmlEntities' module to - 'Text/Pandoc/Entities'. Also changed function names so as - not to be HTML-specific. - + Refactored SGML string escaping functions from HTML and Docbook - writers into Text/Pandoc/Shared. (escapeSGML, stringToSGML) - + Removed 'BlockQuoteContext' from ParserContext, as it isn't - used anywhere. - + Removed splitBySpace and replaced it with a general, polymorphic - splitBy function. - + Refactored LaTeX reader for clarity (added isArg function). - + Converted some CR's to LF's in src/ui/default/print.css. - + Added license text to top of source files. - + Added module data for haddock to source files. - + Reformatted code for consistency. - - * Rewrote documentation and man pages. Split README into INSTALL - and README. - - * Split LICENSE into COPYING and COPYRIGHT. - - * Removed TODO, since we now maintain ToDo on the wiki. - - * Made COPYRIGHT in top level a symlink to debian/copyright, to avoid - duplication. - - [ Recai Oktaş ] - - * Revamped build process to conform to debian standards and created - a proper debian package. Closes: #391666. - - * Modified build process to support GHC 6.6. - - + The package can still be compiled using GHC 6.4.2, though because - of dependencies the "make deb" target works only with GHC 6.6+. - + The script 'cabalize' is used to create an appropriate - 'Pandoc.cabal' from 'Pandoc.cabal.in', depending on the GHC and - Cabal versions. - - * Refactored template processing (fillTemplates.pl). - - * Modified wrapper scripts to make them more robust and portable. - To avoid code duplication and ensure consistency, wrappers are - generated via a templating system from templates in src/wrappers. - - + Wrappers now accept multiple filenames, when appropriate. - + Spaces and tabs allowed in filenames. - + getopts shell builtin is used for portable option parsing. - + Improved html2markdown's web grabber code, making it more robust, - configurable and verbose. Added '-e', '-g' options. - - -- Recai Oktaş <roktas@debian.org> Fri, 05 Jan 2007 09:41:19 +0200 - -pandoc (0.2) unstable; urgency=low - - * Fixed unicode/utf-8 translation - - -- John MacFarlane <jgm@berkeley.edu> Mon, 14 Aug 2006 00:00:00 -0400 - -pandoc (0.1) unstable; urgency=low - - * Initial creation of debian package - - -- John MacFarlane <jgm@berkeley.edu> Mon, 14 Aug 2006 00:00:00 -0400 |