@@ -1,3 +1,301 @@
1+pandoc (1.7)
2+
3+ * Added support for citations, using citeproc-hs-0.3.
4+
5+ + Revised pandoc to support citeproc 0.3 (Andrea Rossato, with
6+ contributions by Nathan Gass and John MacFarlane).
7+ + The `citeproc` Cabal flag has been removed. citeproc support is
8+ now standard in pandoc.
9+ + The new markdown citation syntax is documented in README.
10+ + Replaced `--biblio-file` with `--bibliography`, removed
11+ `--biblio-format`. Bibliography format is guessed from the file
12+ extension of the bibliography.
13+ + Revised `Text.Pandoc.Biblio` API.
14+ + Added support to write natbib or biblatex citations in LaTeX output.
15+ (Nathan Gass)
16+ + Added option to write citation markup in markdown writer. (Nathan Gass)
17+ + Disabled colored boxes around cites in latex template. (Nathan Gass)
18+ + Added support for latex cite commands in latex reader. (Nathan Gass)
19+
20+ * Added textile reader, `Text.Pandoc.Readers.Textile` (Paul Rivier).
21+ Resolves Issue #51.
22+
23+ * Added a textile writer, `Text.Pandoc.Writers.Textile`.
24+
25+ * Added Org-mode writer, `Text.Pandoc.Writers.Org` (Puneeth Chaganti).
26+
27+ * Added support for `json` input and output. The JSON reader is about 20x
28+ faster than the native reader, so this can be a good way to serialize
29+ a pandoc document. To convert between `json` ouput and native `Pandoc`
30+ structures, use `decodeJSON` and `encodeJSON` from `Text.JSON.Generic`.
31+
32+ * pandoc: Treat argument as URI only if it has http(s) scheme.
33+ Previously pandoc would treat the c: in some windows pathnames
34+ as a URI scheme and try to download. Thanks to Peter Wang for
35+ pointing this out.
36+
37+ * Added support for using MathJax to display math in HTML.
38+ Added `--mathjax` option. Added `MathJax` to `HTMLMathMethod`.
39+ Resolves issue #259.
40+
41+ * Removed HTML sanitization. This is better done on the resulting HTML;
42+ use the xss-sanitize library for this. xss-sanitize is based on
43+ pandoc's sanitization, but improves it.
44+
45+ + Removed `stateSanitize` from `ParserState`.
46+ + Removed `--sanitize-html` option.
47+
48+ * `markdown2pdf`: Added `--data-dir` to valid options for `markdown2pdf`.
49+ Added `--bibliography`, `--csl`, `--data-dir` to `markdown2pdf` man page.
50+
51+ * RST reader: Added footnote suppport. Resolves issue #258.
52+ Note that there are some differences in how docutils and
53+ pandoc treat footnotes. Currently pandoc ignores the numeral
54+ or symbol used in the note; footnotes are put in an auto-numbered
55+ ordered list.
56+
57+ * Added `readers` and `writers` to `Text.Pandoc`.
58+ This allows library users to avoid repetitive case statements.
59+
60+ * Removed deprecated `-C/--custom-header` option.
61+ Use `--template` instead.
62+
63+ * Encode filenames as UTF8. Resolves Issue #252.
64+
65+ * Added 'tests' Cabal flag.
66+
67+ + This ensures that `test-pandoc` gets built.
68+ + `cabal test` now runs this.
69+ + The old `tests/RunTests.hs` has been removed, and
70+ `src/test-pandoc.hs` added.
71+ + Test program now sets `LANG` and `HOME` (Nathan Gass).
72+
73+ * Added `--columns` command-line option, which sets `stColumns`
74+ and `writerColumns`. The `COLUMNS` environment variable no
75+ longer has any effect.
76+
77+ * More flexible handling of `--csl`. Look for csl files in `~/.csl` if not
78+ found locally. Add `.csl` extension if it is not provided. If the csl
79+ file is not specified or found in `~/.csl`, `default.csl` will be
80+ used.
81+
82+ * Moved `Text.Pandoc.Definition` from the `pandoc` package to a new
83+ auxiliary package, `pandoc-types`. This will make it possible for other
84+ programs to supply output in Pandoc format, without depending on the whole
85+ pandoc package.
86+
87+ * Moved generic functions to `Text.Pandoc.Generic`. Deprecated
88+ `processWith`, replacing it with two functions, `bottomUp` and `topDown`.
89+ Removed previously deprecated functions `processPandoc` and `queryPandoc`.
90+
91+ * Added `Text.Pandoc.Builder`, for building `Pandoc` structures.
92+
93+ * Added `Text.Pandoc.Pretty`. This is better suited for pandoc than the
94+ `pretty` package. Changed all writers that used
95+ `Text.PrettyPrint.HughesPJ` to use `Text.Pandoc.Pretty` instead.
96+
97+ One advantage is that we now get proper wrapping; `Emph [Inline]`
98+ is no longer treated as a big unwrappable unit. Previously
99+ we only got breaks for spaces at the "outer level." We can also
100+ more easily avoid doubled blank lines. Performance is
101+ significantly better as well.
102+
103+ * Removed `Text.Pandoc.Blocks`. `Text.Pandoc.Pretty` allows you to define
104+ blocks and concatenate them, so a separate module is no longer needed.
105+
106+ * `Text.Pandoc.XML`:
107+
108+ + Rewrote using `Text.Pandoc.Pretty`.
109+ + Replaced `escapeStringAsXML` with a faster version.
110+ Benchmarked with criterion, it's about 8x faster than
111+ the old version. This speeds up docbook, opendocument,
112+ and html writers.
113+
114+ * `Text.Pandoc.Shared`:
115+
116+ + Added `writerColumns` to `WriterOptions`.
117+ This is used to determine the width of wrapped text in the writers
118+ that use `Text.Pandoc.Pretty`.
119+ + Added `normalize`, which normalizes the AST, collapsing
120+ adjacent `Emph` elements, for example.
121+ + Removed unneeded prettyprinting functions:
122+ `wrapped`, `wrapIfNeeded`, `wrappedTeX`, `wrapTeXIfNeeded`, `hang'`,
123+ `BlockWrapper`, `wrappedBlocksToDoc`.
124+ + Made `splitBy` take a test instead of an element.
125+ + Added `findDataFile`, refactored `readDataFile`.
126+ + Added `stringify`. Rewrote `inlineListToIdentifier` using `stringify`.
127+ + Fixed `inlineListToIdentifier` to treat '\160' as ' '.
128+
129+ * Moved `smartPunctuation` from `Text.Pandoc.Readers.Markdown`
130+ to `Text.Pandoc.Readers.Parsing`. This way it can be used
131+ in markdown, textile, RST, and HTML readers.
132+
133+ + Parameterized `smartPunctuation` on an inline parser.
134+ + `--smart` now has an effect in HTML and RST readers,
135+ as well as textile and markdown.
136+ + Ellipses are no longer allowed to contain spaces.
137+ Previously we allowed '. . .', ' . . . ', etc. This caused
138+ too many complications, and removed author's flexibility in
139+ combining ellipses with spaces and periods.
140+
141+ * Markdown reader:
142+
143+ + Process LaTeX macros and apply them to TeX math. For example,
144+
145+ \newcommand{\plus}[2]{#1 + #2}
146+ $\plus{3}{4}$
147+
148+ yields `3+4`.
149+ + Allow HTML comments as inline elements.
150+ So, `aaa <!-- comment --> bbb` can be a single paragraph.
151+ + Minor footnote changes. Don't `skipNonindentSpaces` in `noteMarker`,
152+ since it's also used in the inline note parser.
153+ + Rewrote `para` parser for better efficiency. This change avoids repeated
154+ parsing of inline lists for 'plain' blocks.
155+ + Allow linebreaks in URLs (treat as spaces). Also, a string of
156+ consecutive spaces or tabs is now parsed as a single space. If you have
157+ multiple spaces in your URL, use `%20%20`.
158+ + Handle curly quotes better. Previously, curly quotes were just parsed
159+ literally, leading to problems in some output formats. Now they are
160+ parsed as `Quoted` inlines, if `--smart` is specified. Resolves Issue
161+ #270.
162+ + Performance improvement: Do a quick lookahead to
163+ make sure what follows looks like a setext header before parsing
164+ any Inlines. This gives a 15% performance boost in one benchmark.
165+ Many thanks to knieriem for finding the problem (in peg-markdown):
166+ https://github.com/jgm/peg-markdown/issues/issue/3
167+ + Better handling of intraword underscores.
168+ The `str` parser now reads internal `_`'s as part of the string.
169+ This prevents pandoc from getting started looking for an emphasized
170+ block, which can cause exponential slowdowns in some cases.
171+ Resolves Issue #182.
172+ + Fixed superscripts with links. Moved `inlineNote` parser after
173+ superscript parser, so `^[link](/foo)^` gets recognized as a
174+ superscripted link, not an inline note followed by garbage. Thanks to
175+ Conal Elliott for pointing out the problem.
176+ + Fixed regression in reference key parser.
177+ The recent change allowing spaces and newlines in the URL
178+ caused problems when reference keys are stacked up without
179+ blank lines between. This is now fixed.
180+ + Fixed `referenceKey` parser to allow space after newline.
181+ + Fixed `abbrev` handler to allow abbrev at end of line. E.g., `Mr.
182+ Frank.`
183+ + Moved special handling of punctuation in suffix out of markdown reader.
184+ This allows different writers to handle punctuation in the suffix
185+ differently.
186+ + Fixed regression, making markdown reference case-insensitive again.
187+ This broke when we added the `Key` type. We had assumed that the custom
188+ case-insensitive `Ord` instance would ensure case-insensitive matching,
189+ but that is not how `Data.Map` works. Removed old `refsMatch` from
190+ `Text.Pandoc.Parsing`. Hid the `Key` constructor. Dropped the
191+ custom Ord and Eq instances, deriving them instead. Added
192+ `fromKey` and `toKey` to convert between `Key` and `[Inline]`.
193+ `toKey` ensures that keys are case-insensitive, since this is
194+ the only way the API provides to construct a `Key`.
195+ Resolves Issue #272.
196+
197+ * Table parsing: If the size of the header > `stColumns`,
198+ use the header size as 100% for purposes of calculating
199+ relative widths of columns.
200+
201+ * LaTeX reader:
202+
203+ + Improved parsing of preamble.
204+ Previously you'd get unexpected behavior on a document that
205+ contained `\begin{document}` in, say, a verbatim block.
206+ + Added support for listings package code blocks and inline code
207+ (Puneeth Chaganti).
208+
209+ * HTML reader: completely rewritten using tagsoup as a lexer.
210+
211+ + The new reader is faster and more accurate.
212+ + tagsoup is a new dependency.
213+ + API changes for `Text.Pandoc.Readers.HTML`:
214+ - removed `rawHtmlBlock`, `anyHtmlBlockTag`, `anyHtmlInlineTag`,
215+ `anyHtmlTag`, `anyHtmlEndTag`, `htmlEndTag`, `extractTagType`,
216+ `htmlBlockElement`, `htmlComment`
217+ - added `htmlTag`, `htmlInBalanced`, `isInlineTag`, `isBlockTag`,
218+ `isTextTag`
219+ + `Text.Pandoc.Parsing`: Generalized type on `readWith`.
220+ + Updated markdown and textile readers to use the functions from
221+ the HTML reader.
222+ + Note: The markdown reader now correctly handles some cases it did not
223+ before. For example:
224+
225+ <hr/>
226+
227+ is reproduced without adding a space. And
228+
229+ <script>
230+ a = '<b>';
231+ </script>
232+
233+ is parsed correctly.
234+ + `:` is now allowed in tags. Resolves Issue #274.
235+ + Don't parse raw HTML inside <code> tag.
236+ Previously '<code><a>x</a></code>' would be parsed as
237+ Code "<a>x</a>", which is not what you want.
238+
239+ * RST reader:
240+
241+ + Added unicode quote characters to specialChars.
242+ (So they can trigger Quoted environments.)
243+ + Recouped speed loss due to addition of `--smart`.
244+ This was achieved by rearranging the parsers in inline.
245+ Benchmarks went from 500ms to 307ms -- not quite back to the
246+ 279ms we had in 1.6, before supporting smart punctuation and
247+ footnotes, but close.
248+
249+ * TeXMath reader:
250+
251+ + Handle variables modified with `\acute`, `\grave`, `\breve`, `\check`,
252+ `\dot`, `\mathring`, `\vec`, `\overrightarrow`, `\overleftarrow`,
253+ `\hat`, `\tilde`, `\bar`.
254+ + Handle `\textit`, `\textbf`, etc.
255+
256+ * Markdown writer:
257+
258+ + Use \ for newline instead of two spaces at eol.
259+ (Unless --strict.)
260+ + Use delimited code block if there are attributes.
261+ (Unless in strict mode.)
262+ + Fixed bug in `Image`. URI was getting unescaped twice!
263+
264+ * Plain writer: set `stateStrictMarkdown` automatically.
265+
266+ * OpenDocument writer: don't print raw TeX.
267+
268+ * HTML writer: improved gladTeX output by setting ENV appropriately
269+ for display or inline math (Jonathan Daugherty).
270+
271+ * LaTeX writer:
272+
273+ + Use `\paragraph`, `\subparagraph` for level 4,5 headers.
274+ + Escape curly quotes.
275+ + Added `fontsize` variable to default emplate.
276+ This makes it easy to set the font size using `markdown2pdf`:
277+ `markdown2pdf -V fontsize=12pt input.txt`.
278+ + Escape `[` and `]` as `{[}` and `{]}`. This avoids unwanted
279+ interpretation as an optional argument.
280+
281+ * ConTeXt writer: Escape `[` and `]` as `{[}` and `{]}`.
282+
283+ * ODT writer: Don't wrap text in opendocument.
284+
285+ * Added `Interact.hs` to make it easier to use ghci while developing.
286+ `Interact.hs` loads `ghci` from the `src` directory, specifying
287+ all the options needed to load pandoc modules (including
288+ specific package dependencies, which it gets by parsing
289+ dist/setup-config).
290+
291+ * Added `Benchmark.hs`, testing all readers + writers using criterion.
292+
293+ * Added `stats.sh`, to make it easier to collect and archive
294+ benchmark and lines-of-code stats.
295+
296+ * Remove duplications in documentation by generating the
297+ pandoc man page from README, using `MakeManPage.hs`.
298+
1299pandoc (1.6)
2300
3301 [ John MacFarlane ]