git.iko.soy/typeable/pandoc
on master help sign in
New version of changelog based on relann draft.
commita49e536fa1a00d21ca98bc960582710a3d16ce4f authorJohn MacFarlane <jgm@berkeley.edu> dateSat 1 Jan 2011, 10:11 (16 years ago) parenta20e53a
1 file changed+154−219
changelog+154−219
changelog+154−219
@@ -1,83 +1,76 @@
11pandoc (1.7)
22
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).
3+ [new features]
4+
5+ * New `textile` reader and writer. Thanks to Paul Rivier for contributing
6+ the `textile` reader, an almost complete implementation of the textile
7+ syntax used by the ruby [RedCloth library](http://redcloth.org/textile).
218 Resolves Issue #51.
229
23− * Added a textile writer, `Text.Pandoc.Writers.Textile`.
10+ * New `org` writer, for Emacs Org-mode, contributed by Puneeth Chaganti.
2411
25− * Added Org-mode writer, `Text.Pandoc.Writers.Org` (Puneeth Chaganti).
12+ * New `json` reader and writer, for reading and writing a JSON
13+ representation of the native Pandoc AST. These are much faster
14+ than the `native` reader and writer, and should be used for
15+ serializing Pandoc to text. To convert between the JSON representation
16+ and native Pandoc, use `encodeJSON` and `decodeJSON` from
17+ `Text.JSON.Generic`.
2618
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`.
19+ * Support for citations using Andrea Rossato's `citeproc-hs` 0.3.
20+ You can now write, for example,
3121
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.
22+ Water is wet [see @doe99, pp. 33-35; also @smith04, ch. 1].
3623
37− * Added support for using MathJax to display math in HTML.
38− Added `--mathjax` option. Added `MathJax` to `HTMLMathMethod`.
39− Resolves issue #259.
24+ and, when you process your document using `pandoc`, specifying
25+ a citation style using `--csl` and a bibliography using `--bibliography`,
26+ the citation will be replaced by an appropriately formatted
27+ citation, and a list of works cited will be added to the end
28+ of the document.
4029
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.
30+ This means that you can switch effortlessly between different citation
31+ and bibliography styles, including footnote, numerical, and author-date
32+ formats. The bibliography can be in any of the following formats: MODS,
33+ BibTeX, BibLaTeX, RIS, EndNote, EndNote XML, ISI, MEDLINE, Copac, or JSON.
34+ See the README for further details.
4435
45− + Removed `stateSanitize` from `ParserState`.
46− + Removed `--sanitize-html` option.
36+ Citations are supported in the markdown reader, using a special
37+ syntax, and in the LaTeX reader, using natbib or biblatex syntax.
38+ (Thanks to Nathan Gass for the natbib and biblatex support.)
4739
48− * `markdown2pdf`: Added `--data-dir` to valid options for `markdown2pdf`.
49− Added `--bibliography`, `--csl`, `--data-dir` to `markdown2pdf` man page.
40+ * A new `--mathjax` option has been added for displaying
41+ math in HTML using MathJax. Resolves issue #259.
5042
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.
43+ * You can now define LaTeX macros in markdown documents, and pandoc
44+ will apply them to TeX math. For example,
5645
57− * Added `readers` and `writers` to `Text.Pandoc`.
58− This allows library users to avoid repetitive case statements.
46+ \newcommand{\plus}[2]{#1 + #2}
47+ $\plus{3}{4}$
5948
60− * Removed deprecated `-C/--custom-header` option.
61− Use `--template` instead.
49+ yields `3+4`. Since the macros are applied in the reader, they
50+ will work in every output format, not just LaTeX.
51+
52+ * Footnotes are now supported in the RST reader. (Note, however,
53+ that pandoc ignores the numeral or symbol used in the note;
54+ footnotes are put in an auto-numbered ordered list.)
55+ Resolves issue #258.
56+
57+ * `markdown2pdf` now supports `--data-dir`.
58+
59+ * Improved prettyprinting in most formats. Lines will be wrapped
60+ more evenly and duplicate blank lines avoided.
6261
63− * Encode filenames as UTF8. Resolves Issue #252.
62+ * New `--columns` command-line option sets the column width for
63+ line wrapping and relative width calculations for tables.
6464
65− * Added 'tests' Cabal flag.
65+ * Made `--smart` work in HTML, RST, and Textile readers, as well
66+ as markdown.
6667
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).
68+ * Added support for listings package in LaTeX reader
69+ (Puneeth Chaganti).
7270
73− * Added `--columns` command-line option, which sets `stColumns`
74− and `writerColumns`. The `COLUMNS` environment variable no
75− longer has any effect.
71+ * Significant performance improvements in many readers and writers.
7672
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.
73+ [API and program changes]
8174
8275 * Moved `Text.Pandoc.Definition` from the `pandoc` package to a new
8376 auxiliary package, `pandoc-types`. This will make it possible for other
@@ -90,34 +83,35 @@ pandoc (1.7)
9083
9184 * Added `Text.Pandoc.Builder`, for building `Pandoc` structures.
9285
86+ * `Text.Pandoc` now exports association lists `readers` and `writers`.
87+
88+ * Removed deprecated `-C/--custom-header` option.
89+ Use `--template` instead.
90+
91+ * `--biblio-file` has been replaced by `--bibliography`.
92+ `--biblio-format` has been removed; pandoc now guesses the format
93+ from the file extension (see README).
94+
95+ * pandoc will treat an argument as a URI only if it has an
96+ `http(s)` scheme. Previously pandoc would treat some
97+ Windows pathnames beginning with `C:/` as URIs.
98+
99+ * The `--sanitize-html` option and the `stateSanitize` field in
100+ `ParserState` have been removed. Sanitization is better done in the
101+ resulting HTML using `xss-sanitize`, which is based on pandoc's
102+ sanitization, but improved.
103+
93104 * Added `Text.Pandoc.Pretty`. This is better suited for pandoc than the
94105 `pretty` package. Changed all writers that used
95106 `Text.PrettyPrint.HughesPJ` to use `Text.Pandoc.Pretty` instead.
96107
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−
103108 * Removed `Text.Pandoc.Blocks`. `Text.Pandoc.Pretty` allows you to define
104109 blocks and concatenate them, so a separate module is no longer needed.
105110
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−
114111 * `Text.Pandoc.Shared`:
115112
116113 + 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.
114+ + Added `normalize`.
121115 + Removed unneeded prettyprinting functions:
122116 `wrapped`, `wrapIfNeeded`, `wrappedTeX`, `wrapTeXIfNeeded`, `hang'`,
123117 `BlockWrapper`, `wrappedBlocksToDoc`.
@@ -126,161 +120,70 @@ pandoc (1.7)
126120 + Added `stringify`. Rewrote `inlineListToIdentifier` using `stringify`.
127121 + Fixed `inlineListToIdentifier` to treat '\160' as ' '.
128122
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,
123+ * `Text.Pandoc.Readers.HTML`:
144124
145− \newcommand{\plus}[2]{#1 + #2}
146− $\plus{3}{4}$
125+ + Removed `rawHtmlBlock`, `anyHtmlBlockTag`, `anyHtmlInlineTag`,
126+ `anyHtmlTag`, `anyHtmlEndTag`, `htmlEndTag`, `extractTagType`,
127+ `htmlBlockElement`, `htmlComment`
128+ + Added `htmlTag`, `htmlInBalanced`, `isInlineTag`, `isBlockTag`,
129+ `isTextTag`
147130
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.
131+ * Moved `smartPunctuation` from `Text.Pandoc.Readers.Markdown`
132+ to `Text.Pandoc.Readers.Parsing`, and parameterized it with
133+ an inline parser.
200134
201− * LaTeX reader:
135+ * Ellipses are no longer allowed to contain spaces.
136+ Previously we allowed '. . .', ' . . . ', etc. This caused
137+ too many complications, and removed author's flexibility in
138+ combining ellipses with spaces and periods.
202139
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.
140+ * Allow linebreaks in URLs (treat as spaces). Also, a string of
141+ consecutive spaces or tabs is now parsed as a single space. If you have
142+ multiple spaces in your URL, use `%20%20`.
238143
239− * RST reader:
144+ * `Text.Pandoc.Parsing`:
240145
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.
146+ + Removed `refsMatch`.
147+ + Hid `Key` constructor.
148+ + Removed custom `Ord` and `Eq` instances for `Key`.
149+ + Added `toKey` and `fromKey` to convert between `Key` and `[Inline]`.
150+ + Generalized type on `readWith`.
248151
249− * TeXMath reader:
152+ * Small change in calculation of relative widths of table columns.
153+ If the size of the header > the specified column width, use
154+ the header size as 100% for purposes of calculating
155+ relative widths of columns.
250156
251− + Handle variables modified with `\acute`, `\grave`, `\breve`, `\check`,
252− `\dot`, `\mathring`, `\vec`, `\overrightarrow`, `\overleftarrow`,
253− `\hat`, `\tilde`, `\bar`.
254− + Handle `\textit`, `\textbf`, etc.
157+ * Markdown writer now uses some pandoc-specific features when `--strict`
158+ is not specified: \ newline is used for a hard linebreak instead of
159+ two spaces then a newline. And delimited code blocks are used when
160+ there are attributes.
255161
256− * Markdown writer:
162+ * HTML writer: improved gladTeX output by setting ENV appropriately
163+ for display or inline math (Jonathan Daugherty).
257164
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!
165+ * LaTeX writer: Use `\paragraph`, `\subparagraph` for level 4,5 headers.
263166
264− * Plain writer: set `stateStrictMarkdown` automatically.
167+ * Added `fontsize` variable to default LaTeX template.
168+ This makes it easy to set the font size using `markdown2pdf`:
169+ `markdown2pdf -V fontsize=12pt input.txt`.
265170
266− * OpenDocument writer: don't print raw TeX.
171+ * The `COLUMNS` environment variable no longer has any effect.
267172
268− * HTML writer: improved gladTeX output by setting ENV appropriately
269− for display or inline math (Jonathan Daugherty).
173+ [Under-the-hood improvements]
270174
271− * LaTeX writer:
175+ * Completely rewrote HTML reader using tagsoup as a lexer. The
176+ new reader is faster and more accurate.
272177
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.
178+ * Replaced `escapeStringAsXML` with a faster version.
280179
281− * ConTeXt writer: Escape `[` and `]` as `{[}` and `{]}`.
180+ * Remove duplications in documentation by generating the
181+ pandoc man page from README, using `MakeManPage.hs`.
282182
283− * ODT writer: Don't wrap text in opendocument.
183+ * Improvements to testing framework: Removed old `tests/RunTests.hs`.
184+ `cabal test` now runs `test-pandoc`, which is built from
185+ `src/test-pandoc.hs` when the `tests` Cabal flag is set.
186+ This allows the testing framework to have its own dependencies.
284187
285188 * Added `Interact.hs` to make it easier to use ghci while developing.
286189 `Interact.hs` loads `ghci` from the `src` directory, specifying
@@ -293,8 +196,40 @@ pandoc (1.7)
293196 * Added `stats.sh`, to make it easier to collect and archive
294197 benchmark and lines-of-code stats.
295198
296− * Remove duplications in documentation by generating the
297− pandoc man page from README, using `MakeManPage.hs`.
199+ [Bug fixes]
200+
201+ * Filenames are encoded as UTF8. Resolves Issue #252.
202+
203+ * Handle curly quotes better in `--smart` mode. Previously, curly quotes
204+ were just parsed literally, leading to problems in some output formats.
205+ Now they are parsed as `Quoted` inlines, if `--smart` is specified.
206+ Resolves Issue #270.
207+
208+ * Markdown reader:
209+
210+ + Allow HTML comments as inline elements in markdown.
211+ So, `aaa <!-- comment --> bbb` can be a single paragraph.
212+ + Fixed superscripts with links: `^[link](/foo)^` gets
213+ recognized as a superscripted link, not an inline note followed by
214+ garbage.
215+ + Fixed regression, making markdown reference keys case-insensitive again.
216+ Resolves Issue #272.
217+ + Properly handle abbreviations (like `Mr.`) at the end of a line.
218+ + Better handling of intraword underscores, avoiding exponential
219+ slowdowns in some cases. Resolves Issue #182.
220+
221+ * LaTeX reader: Improved parsing of preamble.
222+ Previously you'd get unexpected behavior on a document that
223+ contained `\begin{document}` in, say, a verbatim block.
224+
225+ * OpenDocument writer: don't print raw TeX.
226+
227+ * Markdown writer: Fixed bug in `Image`. URI was getting unescaped twice!
228+
229+ * LaTeX and ConTeXt: Escape `[` and `]` as `{[}` and `{]}`.
230+ This avoids unwanted interpretation as an optional argument.
231+
232+ * `:` now allowed in HTML tags. Resolves Issue #274.
298233
299234pandoc (1.6)
300235