[pending release 1.12] * 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 contains a python module for writing pandoc filters in python, with a number of examples. * 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`.) * `--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. * citeproc support has been removed from core pandoc (API changes). + The `--bibliography`, `--csl`, and `--citation-abbreviation` options have been removed. + Markdown and LaTeX citations as still parsed, but an external filter, `pandoc-citeproc`, is now needed to process them against a bibliography and CSL stylesheet. The bibliography and stylesheet should be specified in the document's YAML metadata (`bibliography` and `csl` fields), and the filter called with `pandoc --filter pandoc-citeproc`. + The `Text.Pandoc.Biblio` module has been removed, and the Markdown and LaTeX readers no longer process citations. Users of the pandoc library who want citation support will need to use `Text.CSL.Pandoc` from `pandoc-citations`. + All bibliography-related fields have been removed from `ReaderOptions` and `WriterOptions`: `writerBiblioFiles`, `readerReferences`, `readerCitationStyle`. + Note that a Cite element is now created in parsing markdown whether or not there is a matching reference (indeed, pandoc has no way of knowing, since the `--bibliography` option has been removed). By default citations will print as `???`. + 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.) * All slide formats: Support incremental slide view for definition lists. * Added syntax for "pauses" in beamer or reaveljs slide shows. This gives . . . a pause. [note - no longer seems to work in recente revealjs - perhaps this should be reverted] * 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). * 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. * Use new flexible metadata type. + Depend on `pandoc-types` 1.12. This changes the type of `Meta` to allow structured metadata. (API change: existing code that pattern-matches on `Meta` will have to be revised.) + Revised readers and writers to use the new `Meta` type. + Variables completely shadow metadata. If many variables with the same name are set, a list is created. * `Format` is now a newtype, not an alias for String. Equality comparisons are case-insensitive. * New generic block container (`Div`) and inline container (`Span`) elements have been added. These can take attributes. They will render in HTML, Textile, MediaWiki, Org, RST and and Markdown (with `markdown_in_html` extension) as HTML `
` and `` elements; in other formats they will simply pass through their contents. But they can be targeted by scripts. * `Text.Pandoc` + Make `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). * 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.) [ TODO - systematic documentation of pandoc-types API changes, including .JSON, .Walk and changes to .Definition, .Builder. Include the new Format newtype, and the new Span and Div elements.] * Added `Text.Pandoc.Walk` (in `pandoc-types`), which exports hand-written tree-walking functions that are orders of magnitude faster than the SYB functions from `Text.Pandoc.Generic`. These functions are now used where possible in pandoc's code. Added `Tests.Walk` to verify that `walk` and `query` match the generic traversals `bottomUp` and `queryWith`. (API change.) * 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`.) * 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. * `Text.Pandoc.Shared` + `openURL` now follows redirects (#701). + `openURL` and `fetchItem` now return an Either, for better error handling. (API change.) + `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). + `openURL`: Print diagnostic output to stderr, not stdout. + `openURL`: Properly handle `data:` URIs. + `stringify`: Generalized type. * `Text.Pandoc.Biblio` + Override citeproc-hs's `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 of these changes (and the last commit) is that `\citep[23]{item1}` in LaTeX will be interpreted properly, with '23' treated as a locator of type 'page'. * New module `Text.Pandoc.JSON` in pandoc-types. + This 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`. * New module `Text.Pandoc.Writers.Shared` for shared functions used only in writers. + Added `metaToJSON`. This is used in writers to create a JSON object for use in the templates from the pandoc metadata and variables. + Added `getField`, `setField`, `defField` for working with JSON template contexts. * Added `Text.Pandoc.Asciify` utility module. This exports functions to create ASCII-only versions of identifiers. * `Text.Pandoc.ImageSize`: Handle EPS (#903). This change will make EPS images properly sized on conversion to Word. * `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: (#739). + Handle `src` in `embed`, `audio`, `source`, `input` tags. * Added `Text.Pandoc.Writers.Custom` and custom output formats. pandoc -t data/sample.lua will load the script sample.lua and use it as a custom writer. `data/sample.lua` is provided as an example. (This can be printed with `pandoc --print-default-data-file sample.lua`.) * Added OPML reader and writer. + New module `Text.Pandoc.Readers.OPML`. The `_note` attribute is supported. This is unofficial, but used e.g. in OmniOutliner and supported by multimarkdown. We treat the contents as markdown blocks under a section header. + New module `Text.Pandoc.Writers.OPML`. * Added Haddock reader. + New module `Text.Pandoc.Readers.Haddock` (David Lazar). This is based on Haddock's own lexer/parser. * Markdown reader + Added `ignore_line_breaks` markdown extension. This 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. + 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). + Check for blank lines first in blocks. (And skip them. This might speed things up in some cases.) + Implemented `Ext_ascii_identifiers` (#807). + Allow internal `+` in citation identifiers (#856). + 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. + Improved strong/emph parsing, using the strategy of . 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. + 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. + HTML span and div tags are parsed as pandoc Span and Div elements. * RST reader + Don't insert paragraphs where docutils doesn't. `rst2html` doesn't add `

` 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. * Textile reader + Correctly handle entities. + Improved handling of `

` blocks.
    + Fixed a bug in which `
` in certain contexts was
      not recognized as a code block (#927).
    + Remove internal HTML tags in code blocks, rather than printing
      them verbatim.
    * Parse attributes on `
` 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 `Text.Pandoc.Biblio` anyway.
    + 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).

  * MediaWiki reader

    + Allow space before table rows.
    + Fixed regression for `URL`.
      `<` 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.

  * 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's 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).

  * Man writer

    + Offer more fine-grained control in template.
      Now the `title`, `section`, `header`, and `footer` can 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 parse it as before into a title, section, header, and
      footer.  But you can also specify these elements explicitly (#885).

  * 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.
      This differentiates 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).

  * 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.
    + Put multiple authors on separate lines in pandoc titleblock.
      Also, don't wrap long author entries, as new lines get treated
      as new authors.
    + Only autolink absolute URIs.  This fixes a regression, #830.
    + Don't wrap attributes in fenced code blocks.
    + Support YAML title block (render fields in alphabetical order
      to make output predictable).
    + Write full metadata in MMD style title blocks.

  * 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.

  * `Text.Pandoc.PDF`

    + On Windows, create temdir in working directory.
      Reason:  the path to the system temp directory may contain tildes,
      which causes problems in LaTeX when the username is more than
      eight characters (#777).
    + Put temporary output directory in `TEXINPUTS`.
      This will help later when we try to download external resources.
      We can put them in the temp directory (see #917).
    + `Text.Pandoc.PDF` exports `makePDF` instead of `tex2pdf`.
      (API change.)
    + `makePDF` walks the pandoc AST and checks for the existence of
      images in the local directory.  If they are not found, it attempts
      to find them, either in the directory containing the first source
      file, or at an absolute URL, or at a URL relative to the base URL
      of the first command line argument (#917).
    + If compiling with `pdflatex` yields an encoding error, offer
      the suggestion to use `--latex-engine=xelatex`.

  * `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).

  * `Text.Pandoc.Parsing`

    + Further improvements to URI parser.
      Don't treat punctuation before percent-encoding as final punctuation.
      Don't treat '+' as final punctuation.
    + Generalized state type on `readWith` (API change).
    + Specialize readWith to `String` input.
    + Better error reporting in `readWith`: On error have it print the line
      in which the error occurred, with a caret pointing to the column.
    + In `ParserState`, replace `stateTitle`, `stateAuthors`, `stateDate`
      with `stateMeta` and `stateMeta'`.

  * `Text.Pandoc.XML`

     + Removed `stripTags`.  (API change.)

  * `Text.Pandoc.Options`

    + Added `Ext_yaml_metadata_block`. (API change.)
    + Added `Ext_ascii_identifiers`. (API change.)
      This will force `Ext_auto_identifiers` to use ASCII only.
      Set as default for github markdown.
    + Changed `writerSourceDir` to `writerSourceURL` and changed
      the type to a `Maybe`.  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.  It seems better to look for
      images relative to the current working directory, even if the first
      file argument is in another directory.  `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'.  The ODT, EPUB, Docx, and PDF
      writers have been modified accordingly.  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. API change (#942).

  * `Text.Pandoc.Templates`

    + Changed type of `renderTemplate`: it now takes a JSON context
      and a compiled template. (API change.)
    + Export `compileTemplate`. (API change.)
    + Export `renderTemplate'` that takes a string instead of a compiled
      template. (API change.)
    + Export `varListToJSON`. (API change.)
    + Removed `Empty`.
    + Simplified `Template` type to a newtype.
    + Templates can now contain "record lookups" in variables;
      for example, `author.institution` will retrieve the `institution`
      field of the `author` variable.
    + Fixed bug retrieving default template for markdown variants.

  * Default 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.

  * 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 `` 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
      `` 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 ``,
      but `linear` is set to `no` unless the `--toc` option is specified.
      Include `` 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 `__ `` 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 `` 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 ``
    tags for smart quotes in HTML5.  But `` 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 `` 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 `` 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 `` as `Quoted DoubleQuote`.
    + Handle nested `` 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 `
` 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 `` not `` 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 . 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 `
` tags. We now put a newline between `
` and `
` 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 mb21. * 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 `` 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 `` and `` 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 ``. 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 `