diff options
Diffstat (limited to 'changelog')
-rw-r--r-- | changelog | 10953 |
1 files changed, 10953 insertions, 0 deletions
diff --git a/changelog b/changelog new file mode 100644 index 000000000..69b52e94f --- /dev/null +++ b/changelog @@ -0,0 +1,10953 @@ +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 ouput 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 encounterd. + + 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 exisiting 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 emiting 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 droping 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 artefacts (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 hexidecimal 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). + + Addded `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. + Thansk 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 new twiki reader (API chaneg, 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 folowing 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 verions 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 occured + 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 occured 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`. + + * `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`. + + * 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 useable 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 identifers 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 occuring + 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 generater 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.commend 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 compatibilty. + 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, analagous 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 occurance 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 programatically. 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 containts 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 |