diff options
Diffstat (limited to 'changelog')
-rw-r--r-- | changelog | 412 |
1 files changed, 411 insertions, 1 deletions
@@ -1,3 +1,412 @@ +pando (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. + + * 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 ] @@ -408,7 +817,8 @@ pandoc (1.5) + Removed stLink, link template variable. Reason: we now always include hyperref in the template. - * Latex 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 |