git.iko.soy/typeable/pandoc
on master help sign in
Updated changelog.
commit30da1a5b70de8015d0bed81165e8754a40699ea9 authorJohn MacFarlane <fiddlosopher@gmail.com> dateFri 18 Jan 2013, 20:37 (14 years ago) parent4ed8268
1 file changed+699
changelog+699
changelog+699
@@ -1,3 +1,702 @@
1+pandoc (1.10)
2+
3+ [new features]
4+
5+ * New input formats: `mediawiki` (MediaWiki markup).
6+
7+ * New output formats: `epub3` (EPUB v3 with MathML),
8+ `fb2` (FictionBook2 ebooks).
9+
10+ * New `--toc-depth` option, specifying how many levels of
11+ headers to include in a table of contents.
12+
13+ * New `--epub-chapter-level` option, specifying the header
14+ level at which to divide EPUBs into separate files.
15+ Note that this normally affects only performance, not the
16+ visual presentation of the EPUB in a reader.
17+
18+ * Removed the `--strict` option. Instead of using `--strict`,
19+ one can now use the format name `markdown_strict` for either input
20+ or output. This gives more fine-grained control that `--strict`
21+ did, allowing one to convert from pandoc's markdown to strict
22+ markdown or vice versa.
23+
24+ * It is now possible to enable or disable specific syntax
25+ extensions by appending them (with `+` or `-`) to the writer
26+ or reader name. For example,
27+
28+ pandoc -f markdown-footnotes+hard_line_breaks
29+
30+ disables footnotes and enables treating newlines as hard
31+ line breaks. The literate Haskell extensions are now implemented
32+ this way as well, using either `+lhs` or `+literate_haskell`.
33+ For a list of extension names, see the README under
34+ "Pandoc's Markdown."
35+
36+ * The following aliases have been introduced for specific
37+ combinations of markdown extensions: `markdown_phpextra`,
38+ `markdown_github`, `markdown_mmd`, `markdown_strict`. These aliases
39+ work just like regular reader and writer names, and can be modified
40+ with extension modifiers as described above. (Note that conversion
41+ from one markdown dialect to another does not work perfectly,
42+ because there are differences in markdown parsers besides
43+ just the extensions, and because pandoc's internal document model is
44+ not rich enough to capture all of the extensions.)
45+
46+ * New `--html-q-tags` option. The previous default was to use `<q>`
47+ tags for smart quotes in HTML5. But `<q>` tags are also valid HTML4.
48+ Moreover, they are not a robust way of typesetting quotes, since
49+ some user agents don't support them, and some CSS resets (e.g.
50+ bootstrap) prevent pandoc's quotes CSS from working properly.
51+ We now just insert literal quote characters by default in both
52+ `html` and `html5` output, but this option is provided for
53+ those who still want `<q>` tags.
54+
55+ * The markdown reader now prints warnings (to stderr) about
56+ duplicate link and note references. Closes #375.
57+
58+ * Markdown syntax extensions:
59+
60+ + Added pipe tables. Thanks to François Gannaz for the initial patch.
61+ These conform to PHP Markdown Extra's pipe table syntax. A subset
62+ of org-mode table syntax is also supported, which means that you can
63+ use org-mode's nice table editor to create tables.
64+
65+ + Added support for RST-style line blocks. These are
66+ useful for verse and addresses.
67+
68+ + Attributes can now be specified for headers, using the same
69+ syntax as in code blocks. (However, currently only the
70+ identifier has any effect in most writers.) For example,
71+
72+ # My header {#foo}
73+
74+ See [the header above](#foo).
75+
76+ + Pandoc will now act as if link references have been defined
77+ for all headers without explicit identifiers.
78+ So, you can do this:
79+
80+ # My header
81+
82+ Link to [My header].
83+ Another link to [it][My header].
84+
85+ Closes #691.
86+
87+ * LaTeX reader:
88+
89+ + Command macros now work everywhere, including non-math.
90+ Environment macros still not supported.
91+ + `\input` now works, as well as `\include`. TEXINPUTS is used.
92+ Pandoc looks recursively into included files for more included files.
93+
94+ [behavior changes]
95+
96+ * The Markdown reader no longer puts the text of autolinks in a
97+ `Code` inline. This means that autolinks will no longer appear
98+ in a monospace font.
99+
100+ * The character `/` can now appear in markdown citation keys.
101+
102+ * HTML blocks in strict_markdown are no longer required to begin
103+ at the left margin. Technically this is required, according to
104+ the markdown syntax document, but `Markdown.pl` and other markdown
105+ processors are more liberal.
106+
107+ * The `-V` option has been changed so that if there are duplicate
108+ variables, those specified later on the command line take precedence.
109+
110+ * Tight lists now work in LaTeX and ConTeXt output.
111+
112+ * The LaTeX writer no longer relien on the `enumerate` package.
113+ Instead, it uses standard LaTeX commands to change the list numbering
114+ style.
115+
116+ * The LaTeX writer now uses `longtable` instead of `ctable`. This allows
117+ tables to be split over page boundaries.
118+
119+ * The RST writer now uses a line block to render paragraphs containing
120+ linebreaks (which previously weren't supported at all).
121+
122+ * The markdown writer now applies the `--id-prefix` to footnote IDs.
123+ Closes #614.
124+
125+ * The plain writer no longer uses backslash-escaped line breaks
126+ (which are not very "plain").
127+
128+ * `Text.Pandoc.UTF8`: Better error message for invalid UTF8.
129+ Read bytestring and use `Text`'s decodeUtf8 instead of using
130+ `System.IO.hGetContents`. This way you get a message saying
131+ "invalid UTF-8 stream" instead of "invalid byte sequence."
132+ You are also told which byte caused the problem.
133+
134+ * Docx, ODT, and EPUB writers now download images specified by a URL
135+ instead of skipping them or raising an error.
136+
137+ * EPUB writer:
138+
139+ + The default CSS now left-aligns headers by default, instead of
140+ centering. This is more consistent with the rest of the writers.
141+ + A proper multi-level table of contents is now used in `toc.ncx`.
142+ There is no longer a subsidiary table of contents at the beginning
143+ of each chapter.
144+ + Code highlighting now works by default.
145+ + Section divs are used by default for better semantic markup.
146+ + The title is used instead of "Title Page" in the table of contents.
147+ Otherwise we have a hard-coded English string, which looks
148+ strange in ebooks written in other languages. Closes #572.
149+
150+ * HTML writer:
151+
152+ + Put mathjax in span with class "math". Closes #562.
153+ + Put citations in a span with class "citation." In HTML5, also include
154+ a `data-cite` attribute with a space-separated list of citation
155+ keys.
156+
157+ * `Text.Pandoc.UTF8`: use universalNewlineMode in reading.
158+ This treats both `\r\n` and `\n` as `\n` on input, no matter
159+ what platform we're running on.
160+
161+ * Citation processing is now done in the Markdown and LaTeX
162+ readers, not in `pandoc.hs`. This makes it easier for library users
163+ to use citations.
164+
165+ [template changes]
166+
167+ * HTML: Added css to template to preserve spaces in `<code>` tags.
168+ Thanks to Dirk Laurie.
169+
170+ * Beamer: Remove English-centric strings in section pages.
171+ Section pages used to have "Section" and a number as well as the
172+ section title. Now they just have the title. Similarly for part
173+ and subsection. Closes #566.
174+
175+ * LaTeX, ConTeXt: Added papersize variable.
176+
177+ * LaTeX, Beamer templates: Use longtable instead of ctable.
178+
179+ * LaTeX, Beamer templates: Don't require 'float' package for tables.
180+ We don't actually seem to use the '[H]' option.
181+
182+ * Markdown, plain: Fixed titleblock so it is just a single string.
183+ Previously separate title, author, and date variables were used,
184+ but this didn't allow different kinds of title blocks.
185+
186+ * EPUB:
187+
188+ + Rationalized templates. Previously there were three different
189+ templates involved in epub production. There is now just one
190+ template, `default.epub` or `default.epub3`. It can now be
191+ overridden using `--template`, just like other templates.
192+ The titlepage is now folded into the default template.
193+ A `titlepage` variable selects it.
194+ + UTF-8, lang tag, meta tags, title element.
195+
196+ * Added scale-to-width feature to beamer template
197+
198+ [API changes]
199+
200+ * `Text.Pandoc.Definition`: Added `Attr` field to `Header`.
201+ Previously header identifers were autogenerated by the writers.
202+ Now they are added in the readers (either automatically or explicitly).
203+
204+ * The readers now take a `ReaderOptions` rather than a `ParserState`
205+ as a parameter. Indeed, not all parsers use the `ParserState` type;
206+ some have a custom state. The motivation for this change was to separate
207+ user-specifiable options from the accounting functions of parser state.
208+
209+ * New module `Text.Pandoc.Options`. This includes the `WriterOptions`
210+ formerly in `Text.Pandoc.Shared`, and its associated
211+ data types. It also includes a new type `ReaderOptions`, which
212+ contains many options formerly in `ParserState`, and its associated
213+ data types:
214+
215+ + `ParserState.stateParseRaw` -> `ReaderOptions.readerParseRaw`.
216+ + `ParserState.stateColumns` -> `ReaderOptions.readerColumns`.
217+ + `ParserState.stateTabStop` -> `ReaderOptions.readerTabStop`.
218+ + `ParserState.stateOldDashes` -> `ReaderOptions.readerOldDashes`.
219+ + `ParserState.stateLiterateHaskell` -> `ReaderOptions.readerLiterateHaskell`.
220+ + `ParserState.stateCitations` -> `ReaderOptions.readerReferences`.
221+ + `ParserState.stateApplyMacros` -> `ReaderOptions.readerApplyMacros`.
222+ + `ParserState.stateIndentedCodeClasses` ->
223+ `ReaderOptions.readerIndentedCodeClasses`.
224+ + Added `ReaderOptions.readerCitationStyle`.
225+
226+ * `WriterOptions` now includes `writerEpubVersion`, `writerEpubChapterLevel`,
227+ `writerEpubStylesheet`, `writerEpubFonts`, `writerReferenceODT`,
228+ `writerReferenceDocx`, and `writerTOCDepth`. `writerEPUBMetadata` has
229+ been renamed `writerEpubMetadata` for consistency.
230+
231+ * Changed signatures of `writeODT`, `writeDocx`, `writeEPUB`, since they no
232+ longer stylesheet, fonts, reference files as separate parameters.
233+
234+ * Removed `writerLiterateHaskell` from `WriterOptions`, and
235+ `readerLiterateHaskell` from `ReaderOptions`. LHS is now handled
236+ by an extension (`Ext_literate_haskell`).
237+
238+ * Removed deprecated `writerXeTeX`.
239+
240+ * Removed `writerStrict` from `WriterOptions`. Added `writerExtensions`.
241+ Strict is now handled through extensions.
242+
243+ * `Text.Pandoc.Options` exports `pandocExtensions`, `strictExtensions`,
244+ `phpMarkdownExtraExtensions`, `githubMarkdownExtensions`,
245+ and `multimarkdownExtensions`, as well as the `Extensions` type.
246+
247+ * New `Text.Pandoc.Readers.MediaWiki` module, exporting
248+ `readMediaWiki`.
249+
250+ * New `Text.Pandoc.Writers.FB2` module, exporting `writeFB2`
251+ (thanks to Sergey Astanin).
252+
253+ * `Text.Pandoc`:
254+
255+ + Added `getReader`, `getWriter` to `Text.Pandoc`.
256+ + `writers` is now an association list `(String, Writer)`.
257+ A `Writer` can be a `PureStringWriter`, an `IOStringWriter`, or
258+ an `IOByteStringWriter`. ALL writers are now in the 'writers'
259+ list, including the binary writers and FB2 writer. This allows
260+ code in `pandoc.hs` to be simplified.
261+ + Changed type of `readers`, so all readers are in IO.
262+ Users who want pure readers can still get them form the reader
263+ modules; this just affects the function `getReader` that looks up
264+ a reader based on the format name. The point of this change is to
265+ make it possible to print warnings from the parser.
266+
267+ * `Text.Pandoc.Parsing`:
268+
269+ + `Text.Parsec` now exports all Parsec functions used in pandoc code.
270+ No other module directly imports Parsec. This will make it easier
271+ to change the parsing backend in the future, if we want to.
272+ + `Text.Parsec` is used instead of `Text.ParserCombinators.Parsec`.
273+ + Export the type synonym `Parser`.
274+ + Export `widthsFromIndices`, `NoteTable'`, `KeyTable'`, `Key'`, `toKey'`,
275+ `withQuoteContext`, `singleQuoteStart`, `singleQuoteEnd`,
276+ `doubleQuoteStart`, `doubleQuoteEnd`, `ellipses`, `apostrophe`,
277+ `dash`, `nested`, `F(..)`, `askF`, `asksF`, `runF`, `lineBlockLines`.
278+ + `ParserState` is no longer an instance of `Show`.
279+ + Added `stateSubstitutions` and `stateWarnings` to `ParserState`.
280+ + Generalized type of `withQuoteContext`.
281+ + Added `guardEnabled`, `guardDisabled`, `getOption`.
282+ + Removed `failIfStrict`.
283+ + `lookupKeySrc` and `fromKey` are no longer exported.
284+
285+ * `Data.Default` instances are now provided for `ReaderOptions`,
286+ `WriterOptions`, and `ParserState`. `Text.Pandoc` re-exports `def`.
287+ Now you can use `def` (which is re-exported by `Text.Pandoc`) instead
288+ of `defaultWriterOptions` (which is still defined). Closes #546.
289+
290+ * `Text.Pandoc.Shared`:
291+
292+ + Added `safeRead`.
293+ + Renamed `removedLeadingTrailingSpace` to `trim`,
294+ `removeLeadingSpace` to `triml`, and `removeTrailingSpace` to `trimr`.
295+ + Count `\r` as space in `trim` functions.
296+ + Moved `renderTags'` from HTML reader and `Text.Pandoc.SelfContained`
297+ to `Shared`.
298+ + Removed `failUnlessLHS`.
299+ + Export `compactify'`, formerly in Markdown reader.
300+ + Export `isTightList`.
301+ + Do not export `findDataFile`.
302+ + `readDataFile` now returns a strict ByteString.
303+ + Export `readDataFileUTF8` which returns a String, like the
304+ old `readDataFile`.
305+ + Export `fetchItem` and `openURL`.
306+
307+ * `Text.Pandoc.ImageSize`: Use strict, not lazy bytestrings.
308+ Removed `readImageSize`.
309+
310+ * `Text.Pandoc.UTF8`: Export `encodePath`, `decodePath`,
311+ `decodeArg`, `toString`, `fromString`, `toStringLazy`,
312+ `fromStringLazy`.
313+
314+ * `Text.Pandoc.UTF8` is now an exposed module.
315+
316+ * `Text.Pandoc.Biblio`:
317+
318+ + csl parameter now a `String` rather than a `FilePath`.
319+ + Changed type of `processBiblio`. It is no longer in the IO monad.
320+ It now takes a `Maybe Style` argument rather than parameters for CSL
321+ and abbrev filenames. (`pandoc.hs` now calls the functions to parse
322+ the style file and add abbreviations.)
323+
324+ * Markdown reader now exports `readMarkdownWithWarnings`.
325+
326+ * `Text.Pandoc.RTF` now exports `writeRTFWithEmbeddedImages` instead of
327+ `rtfEmbedImage`.
328+
329+ [bug fixes]
330+
331+ * Make `--ascii` work properly with `--self-contained`. Closes #568.
332+
333+ * Markdown reader:
334+
335+ + Fixed link parser to avoid exponential slowdowns. Closes #620.
336+ Previously the parser would hang on input like this:
337+
338+ [[[[[[[[[[[[[[[[[[hi
339+
340+ We fixed this by making the link parser parser characters
341+ between balanced brackets (skipping brackets in inline code spans),
342+ then parsing the result as an inline list. One change is that
343+
344+ [hi *there]* bud](/url)
345+
346+ is now no longer parsed as a link. But in this respect pandoc behaved
347+ differently from most other implementations anyway, so that seems okay.
348+
349+ + Look for raw html/latex blocks before tables.
350+ Otherwise the following gets parsed as a table:
351+
352+ \begin{code}
353+ --------------
354+ -- My comment.
355+ \end{code}
356+
357+ Closes #578.
358+
359+ * RST reader:
360+
361+ + Added support for `:target:` on `.. image::` blocks
362+ and substitutions.
363+ + Field list fixes:
364+
365+ - Fixed field lists items with body beginning after a new line
366+ (Denis Laxalde).
367+ - Allow any char but ':' in names of field lists in RST reader
368+ (Denis Laxalde).
369+ - Don't allow line breaks in field names.
370+ - Require whitespace after field list field names.
371+ - Don't create empty definition list for metadata field lists.
372+ Previously a field list consisting only of metadata fields (author,
373+ title, date) would be parsed as an empty DefinitionList, which is
374+ not legal in LaTeX and not needed in any format.
375+
376+ + Don't recognize inline-markup starts inside words.
377+ For example, `2*2 = 4*1` should not contain an emphasized
378+ section. Added test case for "Literal symbols". Closes #569.
379+ + Allow dashes as separator in simple tables. Closes #555.
380+ + Added support for `container`, `compound`, `epigraph`,
381+ `rubric`, `highlights`, `pull-quote`.
382+ + Added support for `.. code::`.
383+ + Made directive labels case-insensitive.
384+ + Removed requirement that directives begin at left margin.
385+ This was (correctly) not in earlier releases; docutils doesn't
386+ make the requirement.
387+ + Added support for `replace::` and `unicode::` substitutions.
388+ + Ignore unknown interpreted roles.
389+ + Renamed image parser to `subst`, since it now handles all
390+ substitution references.
391+
392+ * Textile reader:
393+
394+ + Allow newlines before pipes in table. Closes #654.
395+ + Fixed bug with list items containing line breaks.
396+ Now pandoc correctly handles hard line breaks inside list items.
397+ Previously they broke list parsing.
398+ + Implemented comment blocks.
399+ + Fixed bug affected words ending in hyphen.
400+ + Properly handle links with surrounding brackets.
401+ Square brackets need to be used when the link isn't surrounded by
402+ spaces or punctuation, or when the URL ending may be ambiguous.
403+ Closes #564.
404+ + Removed nullBlock. Better to know about parsing problems than
405+ to skip stuff when we get stuck.
406+ + Allow ID attributes on headers.
407+ + Textile reader: Avoid parsing dashes as strikeout.
408+ Previously the input
409+
410+ text--
411+ text--
412+ text--
413+ text--
414+
415+ would be parsed with strikeouts rather than dashes. This fixes
416+ the problem by requiring that a strikeout delimiting - not be
417+ followed by a -. Closes #631.
418+ + Expanded list of `stringBreakers`.
419+ This fixes a bug on input like "(_hello_)" which should
420+ be a parenthesized emphasized "hello".
421+ The new list is taken from the PHP source of textile 2.4.
422+ + Fixed autolinks. Previously the textile reader and writer
423+ incorrectly implented RST-style autolinks for URLs and email
424+ addresses. This has been fixed. Now an autolink is done this way:
425+ `"$":http://myurl.com`.
426+ + Fixed footnotes bug in textile. This affected notes occuring
427+ before punctuation, e.g. `foo[1].`. Closes #518.
428+
429+ * LaTeX reader:
430+
431+ + Better handling of citation commands.
432+ + Better handling of `\noindent`.
433+ + Added a 'try' in rawLaTeXBlock, so we can handle `\begin` without `{`.
434+ Closes #622.
435+ + Made `rawLaTeXInline` try to parse block commands as well. This
436+ is usually what we want, given how `rawLaTeXInline` is used in
437+ the markdown and textile readers. If a block-level LaTeX command
438+ is used in the middle of a paragraph (e.g. `\subtitle` inside a title),
439+ we can treat it as raw inline LaTeX.
440+ + Handle \slash command. Closes #605.
441+ + Basic `\enquote` support.
442+ + Fixed parsing of paragraphs beginning with a group. Closes #606.
443+ + Use curly quotes for bare straight quotes.
444+ + Support obeylines environment. Closes #604.
445+ + Guard against "begin", "end" in inlineCommand and
446+ blockCommand.
447+ + Better error messages for environments. Now it should tell you that
448+ it was looking for \end{env}, instead of giving "unknown parse error."
449+
450+ * HTML reader:
451+
452+ + Added HTML 5 tags to list of block-level tags.
453+ + HTML reader: Fixed bug in `htmlBalanced`, which
454+ caused hangs in parsing certain markdown input using
455+ strict mode.
456+ + Parse `<q>` as `Quoted DoubleQuote`.
457+ + Handle nested `<q>` tags properly.
458+ + Modified `htmlTag` for fewer false positives.
459+ A tag must start with `<` followed by `!`,`?`, `/`, or a letter.
460+ This makes it more useful in the wikimedia and markdown parsers.
461+
462+ * DocBook reader: Support title in "figure" element. Closes #650.
463+
464+ * MediaWiki writer:
465+
466+ + Remove newline after `<br/>` in translation of `LineBreak`
467+ There's no particular need for a newline (other than making the
468+ generated MediaWiki source look nice to a human), and in fact
469+ sometimes it is incorrect: in particular, inside an enumeration, list
470+ items cannot have embedded newline characters. (Brent Yorgey)
471+ + Use `<code>` not `<tt>` for Code.
472+
473+ * Man writer: Escape `-` as `\-`.
474+ Unescaped `-`'s become hyphens, while `\-`'s are left as ascii minus
475+ signs. That is preferable for use with command-line options. See
476+ <http://lintian.debian.org/tags/hyphen-used-as-minus-sign.html>. Thanks
477+ to Andrea Bolognani for bringing the issue to our attention.
478+
479+ * RST writer:
480+
481+ + Improved line block output. Use nonbreaking spaces for
482+ initial indent (otherwise lost in HTML and LaTeX).
483+ Allow multiple paragraphs in a single line block.
484+ Allow soft breaks w continuations in line blocks.
485+ + Properly handle images with no alt text. Closes #678.
486+ + Fixed bug with links with duplicate text. We now (a) use anonymous
487+ links for links with inline URLs, and (b) use an inline link instead
488+ of a reference link if the reference link would require a label that
489+ has already been used for a different link. Closes #511.
490+ + Fixed hyperlinked images. Closes #611. Use `:target:`
491+ field when you have a simple linked image.
492+ + Don't add `:align: center` to figures.
493+
494+ * Texinfo writer: Fixed internal cross-references.
495+ Now we insert anchors after each header, and use `@ref` instead of `@uref`
496+ for links. Commas are now escaped as `@comma{}` only when needed;
497+ previously all commas were escaped. (This change is needed, in part,
498+ because `@ref` commands must be followed by a real comma or period.) Also
499+ insert a blank line in from of `@verbatim` environments.
500+
501+ * DocBook writer:
502+
503+ + Made --id-prefix work in DocBook as well as HTML.
504+ Closes #607.
505+ + Don't include empty captions in figures. Closes #581.
506+
507+ * LaTeX writer:
508+
509+ + Use `\hspace*` for nonbreaking space after line break,
510+ since `~` spaces after a line break are just ignored.
511+ Closes #687.
512+ + Don't escape `_` in URLs or hyperref identifiers.
513+ + Properly escape strings inside \url{}. Closes #576.
514+ + Use `[fragile]` only for slides containing code rendered
515+ using listings. Closes #649.
516+ + Escape `|` as `\vert` in LaTeX math. This avoids a clash with
517+ highlighting-kate's macros, which redefine `|` as a short verbatim
518+ delimiter. Thanks to Björn Peemöller for raising this issue.
519+ + Use minipage rather than parbox for block containers in tables.
520+ This allows verbatim code to be included in grid tables.
521+ Closes #663.
522+ + Prevent paragraphs containing only linebreaks or spaces.
523+
524+ * HTML writer:
525+
526+ + Included `highlighting-css` for code spans, too.
527+ Previously it was only included if used in a code block. Closes #653.
528+ + Improved line breaks with `<dd>` tags. We now put a newline between
529+ `</dd>` and `<dd>` when there are multiple definitions.
530+ + Changed mathjax cdn url so it doesn't use https. (This caused
531+ problems when used with `--self-contained`.) See #609.
532+
533+ * EPUB writer:
534+
535+ + `--number-sections` now works properly.
536+ + Don't strip meta and link elements in epub metadata.
537+ Patch from aberrancy. Closes #589.
538+ + Fixed a couple validation bugs.
539+ + Use ch001, ch002, etc. for chapter filenames. This improves sorting
540+ of chapters in some readers, which apparently sort ch2 after ch10.
541+ Closes #610.
542+
543+ * ODT writer: properly set title property (Arlo O'Keeffe).
544+
545+ * Docx writer:
546+
547+ + Fixed bug with nested lists. Previously a list like
548+
549+ 1. one
550+ - a
551+ - b
552+ 2. two
553+
554+ would come out with a bullet instead of "2."
555+ Thanks to Russell Allen for reporting the bug.
556+ + Use `w:cr` in `w:r` instead of `w:br` for linebreaks.
557+ This seems to fix a problem viewing pandoc-generated
558+ docx files in LibreOffice.
559+ + Use integer ids for bookmarks. Closes #626.
560+ + Added nsid to abstractNum elements. This helps when merging
561+ word documents with numbered or bulleted lists. Closes #627.
562+ + Use separate footnotes.xml for notes.
563+ This seems to help LibreOffice convert the file, even though
564+ it was valid docx before. Closes #637.
565+ + Use rIdNN identifiers for r:embed in images.
566+ + Avoid reading image files again when we've already processed them.
567+ + Fixed typo in `referenc.docx` that prevented image captions from
568+ working. Thanks to Huashan Chen.
569+
570+ * `Text.Pandoc.Parsing`:
571+
572+ + Fixed bug in `withRaw`, which didn't correctly handle the case
573+ where nothing is parsed.
574+ + Made `emailAddress` parser more correct. Now it is based on RFC 822,
575+ though it still doesn't implement quoted strings in email addresses.
576+ + Revised URI parser. It now allows many more schemes, allows
577+ uppercase URIs, and better handles trailing punctuation and
578+ trailing slashes in bare URIs. Added many tests.
579+ + Simplified and improved singleQuoteStart. This makes `'s'`, `'l'`,
580+ etc. parse properly. Formerly we had some English-centric heuristics,
581+ but they are no longer needed. Closes #698.
582+
583+ * `Text.Pandoc.Pretty`: Added wide punctuation range to `charWidth`.
584+ This fixes bug with Chinese commas in markdown and reST tables, and
585+ a bug that caused combining characters to be dropped.
586+
587+ * `Text.Pandoc.MIME`: Added MIME types for .wof and .eot. Closes #640.
588+
589+ * `Text.Pandoc.Biblio`:
590+
591+ + Run `mvPunc` and `deNote` on metadata too.
592+ This fixed a bug with notes on titles using footnote styles.
593+ + Fixed bug in fetching CSL files from CSL data directory.
594+
595+ * `pandoc.hs`: Give correct value to `writerSourceDirectory` when a URL
596+ is provided. It should be the URL up to the path.
597+
598+ * Fixed/simplified diff output for tests.
599+ Biblio: Make sure mvPunc and deNote run on metadata too.
600+ This fixed a bug with notes on titles using footnote styles.
601+
602+ [under the hood improvements]
603+
604+ * We no longer depend on `utf8-string`. Instead we use functions
605+ defined in `Text.Pandoc.UTF8` that use `Data.Text`'s conversions.
606+
607+ * Use `safeRead` instead of using `reads` directly (various modules).
608+
609+ * "Implicit figures" (images alone in a paragraph) are now handled
610+ differently. The markdown reader gives their titles the prefix `fig:`; the
611+ writers look for this before treating the image as a figure. Though this
612+ is a bit of a hack, it has two advantages: (i) implicit figures can be
613+ limited to the markdown reader, and (ii) they can be deactivated by turning
614+ off the `implicit_figures` extension.
615+
616+ * `catch` from `Control.Exception` is now used instead of the
617+ old Preface `catch`.
618+
619+ * `Text.Pandoc.Shared`: Improved algorithm for `normalizeSpaces`
620+ and `oneOfStrings` (which is now non-backtracking).
621+
622+ * `Text.Pandoc.Biblio`: Remove workaround for `toCapital`.
623+ Now citeproc-hs is fixed upstream, so this is no longer needed.
624+ Closes #531.
625+
626+ * Textile reader: Improved speed of `hyphenedWords`.
627+ This speeds up the textile reader by about a factor of 4.
628+
629+ * Use `Text.Pandoc.Builder` in RST reader, for more flexibility,
630+ better performance, and automatic normalization.
631+
632+ * Major rewrite of markdown reader:
633+
634+ + Use `Text.Pandoc.Builder` instead of lists. This also
635+ means that everything is normalized automatically.
636+ + Move to a one-pass parsing strategy, returning values in the reader
637+ monad, which are then run (at the end of parsing) against the final
638+ parser state.
639+
640+ * In HTML writer, we now use `toHtml` instead of pre-escaping.
641+ We work around the problem that blaze-html unnecessarily escapes `'`
642+ by pre-escaping just the `'` characters, instead of the whole string.
643+ If blaze-html later stops escaping `'` characters, we can simplify
644+ `strToHtml` to `toHtml`. Closes #629.
645+
646+ * Moved code for embedding images in RTFs from `pandoc.hs` to the
647+ RTF writer (which now exports `writeRTFWithEmbeddedImages`).
648+
649+ * Moved citation processing from `pandoc.hs` into the readers.
650+ This makes things more convenient for library users.
651+
652+ * The man pages are now built by an executable `make-pandoc-man-pages`,
653+ which has its own stanza in the cabal file so that dependencies can be
654+ handled by Cabal. Special treatment in `Setup.hs` ensures that this
655+ executable never gets installed; it is only used to create the man pages.
656+
657+ * The cabal file has been modified so that the pandoc library is used
658+ in building the pandoc executable. (This required moving `pandoc.hs`
659+ from `src` to `.`.) This cuts compile time in half.
660+
661+ * The `executable` and `library` flags have been removed.
662+
663+ * `-threaded` has been removed from ghc-options.
664+
665+ * Version bounds of dependencies have been raised, and the
666+ `blaze_html_0_5` flag now defaults to True. Pandoc now compiles on
667+ GHC 7.6.
668+
669+ * We now require base >= 4.2.
670+
671+ * Integrated the benchmark program into cabal. One can now do:
672+
673+ cabal configure --enable-benchmarks && cabal build
674+ cabal bench --benchmark-option='markdown' --benchmark-option='-s 20'
675+
676+ The benchmark now uses README + testsuite, so benchmark results
677+ from older versions aren't comparable.
678+
679+ * Integrated test suite with cabal.
680+ To run tests, configure with `--enable-tests`, then `cabal test`.
681+ You can specify particular tests using `--test-options='-t markdown'`.
682+ No output is shown unless tests fail. The Haskell test modules
683+ have been moved from `src/` to `tests/`.
684+
685+ * Moved all data files and templates to the `data/` subdirectory.
686+
687+ * Added an `embed_data_files` cabal flag. This causes all
688+ data files to be embedded in the binary, so that the binary
689+ is self-sufficient and can be relocated anywhere, copied on
690+ a USB key, etc. The Windows installer now uses this.
691+ (Since we no longer have the option to build the executable
692+ without the library, this is the only way to get a relocatable
693+ binary on Windows.)
694+
695+ * Removed pcre3.dll from windows package.
696+ It isn't needed unless highlighting-kate is compilled with the
697+ `pcre-light` flag. By default, regex-prce-builtin is used.
698+
699+
1700pandoc (1.9.4.2)
2701
3702 * Don't encode/decode file paths if base >= 4.4.