@@ -0,0 +1,6008 @@
1+pandoc (1.12.1)
2+
3+ * `Text.Pandoc.Definition`: Changed default JSON serialization format.
4+ Instead of `{"Str": "foo"}`, for example, we now have `{"t": "Str",
5+ "c": "foo"}`. This new format is easier to work with outside of Haskell.
6+ Incidentally, "t" stands for "tag", "c" for "contents".
7+
8+ * MediaWiki reader: Trim contents of `<math>` tags, to avoid problems
9+ when converting to markdown (#1027).
10+
11+ * LaTeX reader:
12+
13+ + Ensure that preamble doesn't contribute to the text of
14+ the document.
15+ + Fixed character escaping in \url{}. Previously `\~` wasn't handled
16+ properly, among others.
17+ + Parse `{groups}` as `Span`. This is needed for accurate conversion of
18+ bibtex titles, since we need to know what was protected from
19+ titlecase conversions.
20+
21+ * LaTeX writer:
22+
23+ + Specially escape non-ascii characters in labels.
24+ Otherwise we can get compile errors and other bugs when
25+ compiled with pdflatex (#1007). Thanks to begemotv2718 for the fix.
26+ + Add link anchors for code blocks with identifiers (#1025).
27+
28+ * Throughout the code, use `isURI` instead of `isAbsoluteURI`.
29+ It allows fragments identifiers.
30+
31+ * Slide formats:
32+
33+ + A Div element with class "notes" is treated as speaker
34+ notes. Currently beamer goes to `\note{}`, revealjs to
35+ `<aside class="notes">`, and the notes are simply suppressed in
36+ other formats (#925).
37+ + Fixed `. . .` (pause) on HTML slide formats. Closes #1029.
38+ The old version caused a pause to be inserted before the first
39+ material on a slide. This has been fixed.
40+ + Removed data files for s5, slideous, slidy.
41+ Users of s5 and slideous will have to download the needed
42+ files, as has been documented for some time in the README.
43+ By default, slidy code will be sought on the web, as before.
44+
45+ * HTML writer: Insert command to typeset mathjax only in slideous output
46+ (#966, #1012).
47+
48+ * RST writer: Skip spaces after display math. Otherwise we get indentation
49+ problems, and part of the next paragraph may be rendered as part of the
50+ math.
51+
52+ * OpenDocument writer: Fix formatting of strikeout code (#995),
53+ thanks to wilx. don't use `font-face-decls` variable.
54+
55+ * Fixed test suite so it works with cabal sandboxes.
56+
57+pandoc (1.12.0.2)
58+
59+ * Removed `stringable` dependency.
60+
61+pandoc (1.12.0.1)
62+
63+ * Allow `--metadata` to be repeated for the same key to form a list.
64+ This also has the effect that `--bibliography` can be repeated,
65+ as before.
66+
67+ * Handle boolean values in `--metadata`. Note that anything not parseable
68+ as a YAML boolean or string is treated as a literal string.
69+ You can get a string value with "yes", or any of the strings interpretable
70+ as booleans, by quoting it:
71+
72+ -M boolvalue=yes -M stringvalue='"yes"'
73+
74+ * LaTeX writer: Don't print references if `--natbib` or `--biblatex`
75+ option used.
76+
77+ * DOCX writer: Add `settings.xml` to the zip container. Fixes a bug
78+ in which docx files could not be read by some versions of Word
79+ and LibreOffice (#990).
80+
81+ * Fixed a regression involving slide shows with bibliographies.
82+ The Div container around references messed up the procedure for carving
83+ a document into slides. So we now remove the surrounding Div in
84+ `prepSlides`.
85+
86+ * More informative error message when a filter is not found in path.
87+
88+ * Depend on pandoc-types 1.12.1. This provide `ToJSONFilter`
89+ instances for `Data a => a -> [a]` and `Data a => a -> IO [a]`.
90+
91+ * Don't use unicode_collation in building OSX package:
92+ it adds something like 50MB of dependencies to the package.
93+
94+ * Declare alex and happy as build-tools (#986).
95+
96+pandoc (1.12)
97+
98+ [new features]
99+
100+ * Much more flexible metadata, including arbitrary fields and structured
101+ values. Metadata can be specified flexibly in pandoc markdown using
102+ YAML metadata blocks, which may occur anywhere in the document:
103+
104+ ---
105+ title: Here is my title.
106+ abstract: |
107+ This is the abstract.
108+
109+ 1. It can contain
110+ 2. block content
111+ and *inline markup*
112+
113+ tags: [cat, dog, animal]
114+ ...
115+
116+ Metadata fields automatically populate template variables.
117+
118+ * Added `opml` (OPML) as input and output format. The `_note` attribute,
119+ used in OmniOutliner and supported by multimarkdown, is supported.
120+ We treat the contents as markdown blocks under a section header.
121+
122+ * Added `haddock` (Haddock markup) as input format (David Lazar).
123+
124+ * Added `revealjs` output format, for reveal.js HTML 5 slide shows.
125+ (Thanks to Jamie F. Olson for the initial patch.)
126+ Nested vertical stacks are used for hierarchical structure.
127+ Results for more than one level of nesting may be odd.
128+
129+ * Custom writers can now be written in lua.
130+
131+ pandoc -t data/sample.lua
132+
133+ will load the script sample.lua and use it as a custom writer.
134+ (For a sample, do `pandoc --print-default-data-file sample.lua`.)
135+ Note that pandoc embeds a lua interpreter, so lua need not be
136+ installed separately.
137+
138+ * New `--filter/-F` option to make it easier to run "filters"
139+ (Pandoc AST transformations that operate on JSON serializations).
140+ Filters are always passed the name of the output format, so their
141+ behavior can be tailored to it. The repository
142+ <https://github.com/jgm/pandocfilters> contains
143+ a python module for writing pandoc filters in python, with
144+ a number of examples.
145+
146+ * Added `--metadata/-M` option.
147+ This is like `--variable/-V`, but actually adds to metadata, not
148+ just variables.
149+
150+ * Added `--print-default-data-file` option, which allows printing
151+ of any of pandoc's data files. (For example,
152+ `pandoc --print-default-data-file reference.odt` will print
153+ `reference.odt`.)
154+
155+ * Added syntax for "pauses" in slide shows:
156+
157+ This gives
158+
159+ . . .
160+
161+ me pause.
162+
163+ * New markdown extensions:
164+
165+ + `ignore_line_breaks`: causes intra-paragraph line breaks to be ignored,
166+ rather than being treated as hard line breaks or spaces. This is useful
167+ for some East Asian languages, where spaces aren't used between words,
168+ but text is separated into lines for readability.
169+ + `yaml_metadata_block`: Parse YAML metadata blocks. (Default.)
170+ + `ascii_identifiers`: This will force `auto_identifiers` to use ASCII
171+ only. (Default for `markdown_github`.) (#807)
172+ + `lists_without_preceding_blankline`: Allow lists to start without
173+ preceding blank space. (Default for `markdown_github`.) (#972)
174+
175+ [behavior changes]
176+
177+ * `--toc-level` no longer implies `--toc`.
178+ Reason: EPUB users who don't want a visible TOC may still want
179+ to set the TOC level for in the book navigation.
180+
181+ * `--help` now prints in and out formats in alphabetical order, and
182+ says something about PDF output (#720).
183+
184+ * `--self-contained` now returns less verbose output (telling you
185+ which URLs it is fetching, but not giving the full header). In
186+ addition, there are better error messages when fetching a URL fails.
187+
188+ * Citation support is no longer baked in to core pandoc. Users who
189+ need citations will need to install and use a separate filter
190+ (`--filter pandoc-citeproc`). This filter will take `bibliography`,
191+ `csl`, and `citation-abbreviations` from the metadata, though it
192+ may still be specified on the command line as before.
193+
194+ * A `Cite` element is now created in parsing markdown whether or not
195+ there is a matching reference.
196+
197+ * The `pandoc-citeproc` script will put the bibliography at the
198+ end of the document, as before. However, it will be put inside a `Div`
199+ element with class "references", allowing users some control
200+ over the styling of references. A final header, if any, will
201+ be included in the `Div`.
202+
203+ * The markdown writer will not print a bibliography if the
204+ `citations` extension is enabled. (If the citations are formatted
205+ as markdown citations, it is redundant to have a bibliography,
206+ since one will be generated automatically.)
207+
208+ * Previously we used to store the directory of the first input file,
209+ even if it was local, and used this as a base directory for finding
210+ images in ODT, EPUB, Docx, and PDF. This has been confusing to many
211+ users. So we now look for images relative to the current
212+ working directory, even if the first file argument is in another
213+ directory. Note that this change may break some existing workflows.
214+ If you have been assuming that relative links will be interpreted
215+ relative to the directory of the first file argument, you'll need
216+ to make that the current directory before running pandoc. (#942)
217+
218+ * Better error reporting in some readers, due to changes in `readWith`:
219+ the line in which the error occured is printed, with a caret pointing
220+ to the column.
221+
222+ * All slide formats now support incremental slide view for definition lists.
223+
224+ * Parse `\(..\)` and `\[..\]` as math in MediaWiki reader.
225+ Parse `:<math>...</math>` as display math. These notations are used with
226+ the MathJax MediaWiki extension.
227+
228+ * All writers: template variables are set automatically from metadata
229+ fields. However, variables specified on the command line with
230+ `--variable` will completely shadow metadata fields.
231+
232+ * If `--variable` is used to set many variables with the same name,
233+ a list is created.
234+
235+ * Man writer: The `title`, `section`, `header`, and `footer` can now
236+ all be set individually in metadata. The `description` variable has been
237+ removed. Quotes have been added so that spaces are allowed in the
238+ title. If you have a title that begins
239+
240+ COMMAND(1) footer here | header here
241+
242+ pandoc will still parse it into a title, section, header, and
243+ footer. But you can also specify these elements explicitly (#885).
244+
245+ * Markdown reader
246+
247+ + Added support for YAML metadata blocks, which can come anywhere
248+ in the document (not just at the beginning). A document can contain
249+ multiple YAML metadata blocks.
250+ + HTML span and div tags are parsed as pandoc Span and Div elements.
251+
252+ * Markdown writer
253+
254+ + Allow simple tables to be printed as grid tables,
255+ if other table options are disabled. This means you can do
256+ `pandoc -t markdown-pipe_tables-simple_tables-multiline_tables`
257+ and all tables will render as grid tables.
258+ + Support YAML title block (render fields in alphabetical order
259+ to make output predictable).
260+
261+ [API changes]
262+
263+ * `Meta` in `Text.Pandoc.Definition` has been changed to allow
264+ structured metadata. (Note: existing code that pattern-matches
265+ on `Meta` will have to be revised.) Metadata can now contain
266+ indefinitely many fields, with content that can be a string,
267+ a Boolean, a list of `Inline` elements, a list of `Block`
268+ elements, or a map or list of these.
269+
270+ * A new generic block container (`Div`) has been added to `Block`,
271+ and a generic inline container (`Span`) has been added to `Inline`.
272+ These can take attributes. They will render in HTML, Textile,
273+ MediaWiki, Org, RST and and Markdown (with `markdown_in_html`
274+ extension) as HTML `<div>` and `<span>` elements; in other formats
275+ they will simply pass through their contents. But they can be
276+ targeted by scripts.
277+
278+ * `Format` is now a newtype, not an alias for String.
279+ Equality comparisons are case-insensitive.
280+
281+ * Added `Text.Pandoc.Walk`, which exports hand-written tree-walking
282+ functions that are much faster than the SYB functions from
283+ `Text.Pandoc.Generic`. These functions are now used where possible
284+ in pandoc's code. (`Tests.Walk` verifies that `walk` and `query`
285+ match the generic traversals `bottomUp` and `queryWith`.)
286+
287+ * Added `Text.Pandoc.JSON`, which provides `ToJSON` and `FromJSON`
288+ instances for the basic pandoc types. They use GHC generics and
289+ should be faster than the old JSON serialization using
290+ `Data.Aeson.Generic`.
291+
292+ * Added `Text.Pandoc.Process`, exporting `pipeProcess`.
293+ This is a souped-up version of `readProcessWithErrorcode` that
294+ uses lazy bytestrings instead of strings and allows setting
295+ environment variables. (Used in `Text.Pandoc.PDF`.)
296+
297+ * New module `Text.Pandoc.Readers.OPML`.
298+
299+ * New module `Text.Pandoc.Writers.OPML`.
300+
301+ * New module `Text.Pandoc.Readers.Haddock` (David Lazar).
302+ This is based on Haddock's own lexer/parser.
303+
304+ * New module `Text.Pandoc.Writers.Custom`.
305+
306+ * In `Text.Pandoc.Shared`, `openURL` and `fetchItem` now return an
307+ Either, for better error handling.
308+
309+ * Made `stringify` polymorphic in `Text.Pandoc.Shared`.
310+
311+ * Removed `stripTags` from `Text.Pandoc.XML`.
312+
313+ * `Text.Pandoc.Templates`:
314+
315+ + Simplified `Template` type to a newtype.
316+ + Removed `Empty`.
317+ + Changed type of `renderTemplate`: it now takes a JSON context
318+ and a compiled template.
319+ + Export `compileTemplate`.
320+ + Export `renderTemplate'` that takes a string instead of a compiled
321+ template.
322+ + Export `varListToJSON`.
323+
324+ * `Text.Pandoc.PDF` exports `makePDF` instead of `tex2pdf`.
325+
326+ * `Text.Pandoc`:
327+
328+ + Made `toJsonFilter` an alias for `toJSONFilter` from `Text.Pandoc.JSON`.
329+ + Removed `ToJsonFilter` typeclass. `ToJSONFilter` from
330+ `Text.Pandoc.JSON` should be used instead. (Compiling against
331+ pandoc-types instead of pandoc will also produce smaller executables.)
332+ * Removed the deprecated `jsonFilter` function.
333+ + Added `readJSON`, `writeJSON` to the API (#817).
334+
335+ * `Text.Pandoc.Options`:
336+
337+ + Added `Ext_lists_without_preceding_blankline`,
338+ `Ext_ascii_identifiers`, `Ext_ignore_line_breaks`,
339+ `Ext_yaml_metadataBlock` to `Extension`.
340+ + Changed `writerSourceDirectory` to `writerSourceURL` and changed the
341+ type to a `Maybe`. `writerSourceURL` is set to 'Just url' when the
342+ first command-line argument is an absolute URL. (So, relative links
343+ will be resolved in relation to the first page.) Otherwise, 'Nothing'.
344+ + All bibliography-related fields have been removed from
345+ `ReaderOptions` and `WriterOptions`: `writerBiblioFiles`,
346+ `readerReferences`, `readerCitationStyle`.
347+
348+ * The `Text.Pandoc.Biblio` module has been removed. Users of the
349+ pandoc library who want citation support will need to use
350+ `Text.CSL.Pandoc` from `pandoc-citeproc`.
351+
352+
353+ [bug fixes]
354+
355+ * In markdown, don't autolink a bare URI that is followed by `</a>`
356+ (#937).
357+
358+ * `Text.Pandoc.Shared`
359+
360+ + `openURL` now follows redirects (#701), properly handles `data:`
361+ URIs, and prints diagnostic output to stderr rather than stdout.
362+ + `readDefaultDataFile`: normalize the paths. This fixes bugs in
363+ `--self-contained` on pandoc compiled with `embed_data_files` (#833).
364+ + Fixed `readDefaultDataFile` so it works on Windows.
365+ + Better error messages for `readDefaultDataFile`. Instead of
366+ listing the last path tried, which can confuse people who are
367+ using `--self-contained`, so now we just list the data file name.
368+ + URL-escape pipe characters. Even though these are legal, `Network.URI`
369+ doesn't regard them as legal in URLs. So we escape them first (#535).
370+
371+ * Mathjax in HTML slide shows: include explicit "Typeset" call.
372+ This seems to be needed for some formats (e.g. slideous) and won't
373+ hurt in others (#966).
374+
375+ * `Text.Pandoc.PDF`
376+
377+ + On Windows, create temdir in working directory, since the system
378+ temp directory path may contain tildes, which can cause
379+ problems in LaTeX (#777).
380+ + Put temporary output directory in `TEXINPUTS` (see #917).
381+ + `makePDF` tries to download images that are not found locally,
382+ if the first argument is a URL (#917).
383+ + If compiling with `pdflatex` yields an encoding error, offer
384+ the suggestion to use `--latex-engine=xelatex`.
385+
386+ * Produce automatic header identifiers in parsing textile, RST,
387+ and LaTeX, unless `auto_identifiers` extension is disabled (#967).
388+
389+ * `Text.Pandoc.SelfContained`: Strip off fragment, query of relative URL
390+ before treating as a filename. This fixes `--self-contained` when used
391+ with CSS files that include web fonts using the method described here:
392+ <http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/>
393+ (#739). Handle `src` in `embed`, `audio`, `source`, `input` tags.
394+
395+ * `Text.Pandoc.Parsing`: `uri` parser no longer treats punctuation before
396+ percent-encoding, or a `+` character, as final punctuation.
397+
398+ * `Text.Pandoc.ImageSize`: Handle EPS (#903). This change will make
399+ EPS images properly sized on conversion to Word.
400+
401+ * Slidy: Use slidy.js rather than slidy.js.gz.
402+ Reason: some browsers have trouble with the gzipped js file,
403+ at least on the local file system (#795).
404+
405+ * Markdown reader
406+
407+ + Properly handle blank line at beginning of input (#882).
408+ + Fixed bug in unmatched reference links. The input
409+ `[*infile*] [*outfile*]` was getting improperly parsed:
410+ "infile" was emphasized, but "*outfile*" was literal (#883).
411+ + Allow internal `+` in citation identifiers (#856).
412+ + Allow `.` or `)` after `#` in ATX headers if no `fancy_lists`.
413+ + Do not generate blank title, author, or date metadata elements.
414+ Leave these out entirely if they aren't present.
415+ + Allow backtick code blocks not to be preceded by blank line (#975).
416+
417+ * Textile reader:
418+
419+ + Correctly handle entities.
420+ + Improved handling of `<pre>` blocks (#927). Remove internal HTML tags
421+ in code blocks, rather than printing them verbatim. Parse attributes
422+ on `<pre>` tag for code blocks.
423+
424+ * HTML reader: Handle non-simple tables (#893). Column widths are read from
425+ `col` tags if present, otherwise divided equally.
426+
427+ * LaTeX reader
428+
429+ + Support alltt environment (#892).
430+ + Support `\textasciitilde`, `\textasciicircum` (#810).
431+ + Treat `\textsl` as emphasized text reader (#850).
432+ + Skip positional options after `\begin{figure}`.
433+ + Support `\v{}` for hacek (#926).
434+ + Don't add spurious ", " to citation suffixes.
435+ This is added when needed in pandoc-citeproc.
436+ + Allow spaces in alignment spec in tables, e.g. `{ l r c }`.
437+ + Improved support for accented characters (thanks to Scott Morrison).
438+ + Parse label after section command and set id (#951).
439+
440+ * RST reader:
441+
442+ + Don't insert paragraphs where docutils doesn't.
443+ `rst2html` doesn't add `<p>` tags to list items (even when they are
444+ separated by blank lines) unless there are multiple paragraphs in the
445+ list. This commit changes the RST reader to conform more closely to
446+ what docutils does (#880).
447+ + Improved metadata. Treat initial field list as metadata when
448+ standalone specified. Previously ALL fields "title", "author",
449+ "date" in field lists were treated as metadata, even if not at
450+ the beginning. Use `subtitle` metadata field for subtitle.
451+ + Fixed 'authors' metadata parsing in reST. Semicolons separate
452+ different authors.
453+
454+ * MediaWiki reader
455+
456+ + Allow space before table rows.
457+ + Fixed regression for `<ref>URL</ref>`.
458+ `<` is no longer allowed in URLs, according to the uri parser
459+ in `Text.Pandoc.Parsing`. Added a test case.
460+ + Correctly handle indented preformatted text without preceding
461+ or following blank line.
462+ + Fixed `|` links inside table cells. Improved attribute parsing.
463+ + Skip attributes on table rows. Previously we just crashed if
464+ rows had attributes, now we ignore them.
465+ + Ignore attributes on headers.
466+ + Allow `Image:` for images (#971).
467+ + Parse an image with caption in a paragraph by itself as a figure.
468+
469+ * LaTeX writer
470+
471+ + Don't use ligatures in escaping inline code.
472+ + Fixed footnote numbers in LaTeX/PDF tables. This fixes a bug
473+ wherein notes were numbered incorrectly in tables (#827).
474+ + Always create labels for sections. Previously the labels were only
475+ created when there were links to the section in the document (#871).
476+ + Stop escaping `|` in LaTeX math.
477+ This caused problems with array environments (#891).
478+ + Change `\` to `/` in paths. `/` works even on Windows in LaTeX.
479+ `\` will cause major problems if unescaped.
480+ + Write id for code block to label attribute in LaTeX when listings
481+ is used (thanks to Florian Eitel).
482+ + Scale LaTeX tables so they don't exceed columnwidth.
483+ + Avoid problem with footnotes in unnumbered headers (#940).
484+
485+ * Beamer writer: when creating beamer slides, add `allowframebreaks` option
486+ to the slide if it is one of the header classes. It is recommended
487+ that your bibliography slide have this attribute:
488+
489+ # References {.allowframebreaks}
490+
491+ This causes multiple slides to be created if necessary, depending
492+ on the length of the bibliography.
493+
494+ * ConTeXt writer: Properly handle tables without captions. The old output
495+ only worked in MkII. This should work in MkIV as well (#837).
496+
497+ * MediaWiki writer: Use native mediawiki tables instead of HTML (#720).
498+
499+ * HTML writer:
500+
501+ + Fixed `--no-highlight` (Alexander Kondratskiy).
502+ + Don't convert to lowercase in email obfuscation (#839).
503+ + Ensure proper escaping in `<title>` and `<meta>` fields.
504+
505+ * AsciiDoc writer:
506+
507+ + Support `--atx-headers` (Max Rydahl Andersen).
508+ + Don't print empty identifier blocks `([[]])` on headers (Max
509+ Rydahl Andersen).
510+
511+ * ODT writer:
512+
513+ + Fixing wrong numbered-list indentation in open document format
514+ (Alexander Kondratskiy) (#369).
515+ + `reference.odt`: Added pandoc as "generator" in `meta.xml`.
516+ + Minor changes for ODF 1.2 conformance (#939). We leave the
517+ nonconforming `contextual-spacing` attribute, which is provided by
518+ LibreOffice itself and seems well supported.
519+
520+ * Docx writer:
521+
522+ + Fixed rendering of display math in lists.
523+ In 1.11 and 1.11.1, display math in lists rendered as a new list
524+ item. Now it always appears centered, just as outside of lists,
525+ and in proper display math style, no matter how far indented the
526+ containing list item is (#784).
527+ + Use `w:br` with `w:type` `textWrapping` for linebreaks.
528+ Previously we used `w:cr` (#873).
529+ + Use Compact style for Plain block elements, to
530+ differentiate between tight and loose lists (#775).
531+ + Ignore most components of `reference.docx`.
532+ We take the `word/styles.xml`, `docProps/app.xml`,
533+ `word/theme/theme1.xml`, and `word/fontTable.xml` from
534+ `reference.docx`, ignoring everything else. This should help
535+ with the corruption problems caused when different versions of
536+ Word resave the reference.docx and reorganize things.
537+ + Made `--no-highlight` work properly.
538+
539+ * EPUB writer
540+
541+ + Don't add `dc:creator` tags if present in EPUB metadata.
542+ + Add `id="toc-title"` to `h1` in `nav.xhtml` (#799).
543+ + Don't put blank title page in reading sequence.
544+ Set `linear="no"` if no title block. Addresses #797.
545+ + Download webtex images and include as data URLs.
546+ This allows you to use `--webtex` in creating EPUBs.
547+ Math with `--webtex` is automatically made self-contained.
548+ + In `data/epub.css`, removed highlighting styles (which
549+ are no longer needed, since styles are added by the HTML
550+ writer according to `--highlighting-style`). Simplified
551+ margin fields.
552+ + If resource not found, skip it, as in Docx writer (#916).
553+
554+ * RTF writer:
555+
556+ + Properly handle characters above the 0000-FFFF range.
557+ Uses surrogate pairs. Thanks to Hiromi Ishii for the patch.
558+ + Fixed regression with RTF table of contents.
559+ + Only autolink absolute URIs. This fixes a regression, #830.
560+
561+ * Markdown writer:
562+
563+ + Only autolink absolute URIs. This fixes a regression, #830.
564+ + Don't wrap attributes in fenced code blocks.
565+ + Write full metadata in MMD style title blocks.
566+ + Put multiple authors on separate lines in pandoc titleblock.
567+ Also, don't wrap long author entries, as new lines get treated
568+ as new authors.
569+
570+ * `Text.Pandoc.Templates`:
571+
572+ + Fixed bug retrieving default template for markdown variants.
573+ + Templates can now contain "record lookups" in variables;
574+ for example, `author.institution` will retrieve the `institution`
575+ field of the `author` variable.
576+ + More consistent behavior of `$for$`. When `foo` is not a list,
577+ `$for(foo)$...$endfor$` should behave like $if(foo)$...$endif$.
578+ So if `foo` resolves to "", no output should be produced.
579+ See pandoc-templates#39.
580+
581+ * Citation processing improvements (now part of pandoc-citeproc):
582+
583+ + Fixed `endWithPunct` The new version correctly sees a sentence
584+ ending in '.)' as ending with punctuation. This fixes a bug which
585+ led such sentences to receive an extra period at the end: '.).'.
586+ Thanks to Steve Petersen for reporting.
587+ + Don't interfere with Notes that aren't citation notes.
588+ This fixes a bug in which notes not generated from citations were
589+ being altered (e.g. first letter capitalized) (#898).
590+ + Only capitalize footnote citations when they have a prefix.
591+ + Changes in suffix parsing. A suffix beginning with a digit gets 'p'
592+ inserted before it before passing to citeproc-hs, so that bare numbers
593+ are treated as page numbers by default. A suffix not beginning with
594+ punctuation has a space added at the beginning (rather than a comma and
595+ space, as was done before for not-author-in-text citations).
596+ The result is that `\citep[23]{item1}` in LaTeX will be interpreted
597+ properly, with '23' treated as a locator of type 'page'.
598+ + Many improvements to citation rendering, due to fixes in citeproc-hs
599+ (thanks to Andrea Rossato).
600+ + Warnings are issued for undefined citations, which are rendered
601+ as `???`.
602+ + Fixed hanging behavior when locale files cannot be found.
603+
604+ [template changes]
605+
606+ * DocBook: Use DocBook 4.5 doctype.
607+
608+ * Org: '#+TITLE:' is inserted before the title.
609+ Previously the writer did this.
610+
611+ * LaTeX: Changes to make mathfont work with xelatex.
612+ We need the mathspec library, not just fontspec, for this.
613+ We also need to set options for setmathfont (#734).
614+
615+ * LaTeX: Use `tex-ansi` mapping for `monofont`.
616+ This ensures that straight quotes appear as straight, rather than
617+ being treated as curly. See #889.
618+
619+ * Made `\includegraphics` more flexible in LaTeX template.
620+ Now it can be used with options, if needed. Thanks to Bernhard Weichel.
621+
622+ * LaTeX/Beamer: Added `classoption` variable.
623+ This is intended for class options like `oneside`; it may
624+ be repeated with different options. (Thanks to Oliver Matthews.)
625+
626+ * Beamer: Added `fonttheme` variable. (Thanks to Luis Osa.)
627+
628+ * LaTeX: Added `biblio-style` variable (#920).
629+
630+ * DZSlides: title attribute on title section.
631+
632+ * HTML5: add meta tag to allow scaling by user (Erik Evenson)
633+
634+ [under-the-hood improvements]
635+
636+ * Markdown reader:Improved strong/emph parsing, using the strategy of
637+ <https://github.com/jgm/Markdown>. The new parsing algorithm requires
638+ no backtracking, and no keeping track of nesting levels. It will give
639+ different results in some edge cases, but these should not affect normal
640+ uses.
641+
642+ * Added `Text.Pandoc.Compat.Monoid`.
643+ This allows pandoc to compile with `base` < 4.5, where `Data.Monoid`
644+ doesn't export `<>`. Thanks to Dirk Ullirch for the patch.
645+
646+ * Added `Text.Pandoc.Compat.TagSoupEntity`.
647+ This allows pandoc to compile with `tagsoup` 0.13.x.
648+ Thanks to Dirk Ullrich for the patch.
649+
650+ * Most of `Text.Pandoc.Readers.TeXMath` has been moved to the
651+ `texmath` module (0.6.4). (This allows `pandoc-citeproc` to
652+ handle simple math in bibliography fields.)
653+
654+ * Added `Text.Pandoc.Writers.Shared` for shared functions used
655+ only in writers. `metaToJSON` is used in writers to create a
656+ JSON object for use in the templates from the pandoc metadata
657+ and variables. `getField`, `setField`, and `defField` are
658+ for working with JSON template contexts.
659+
660+ * Added `Text.Pandoc.Asciify` utility module.
661+ This exports functions to create ASCII-only versions of identifiers.
662+
663+ * `Text.Pandoc.Parsing`
664+
665+ + Generalized state type on `readWith` (API change).
666+ + Specialize readWith to `String` input. (API change).
667+ + In `ParserState`, replace `stateTitle`, `stateAuthors`, `stateDate`
668+ with `stateMeta` and `stateMeta'`.
669+
670+ * `Text.Pandoc.UTF8`: use strict bytestrings in reading. The use of lazy
671+ bytestrings seemed to cause problems using pandoc on 64-bit Windows
672+ 7/8 (#874).
673+
674+ * Factored out `registerHeader` from markdown reader, added to
675+ `Text.Pandoc.Parsing`.
676+
677+ * Removed `blaze_html_0_5` flag, require `blaze-html` >= 0.5.
678+ Reason: < 0.5 does not provide a monoid instance for Attribute,
679+ which is now needed by the HTML writer (#803).
680+
681+ * Added `http-conduit` flag, which allows fetching https resources.
682+ It also brings in a large number of dependencies (`http-conduit`
683+ and its dependencies), which is why for now it is an optional flag
684+ (#820).
685+
686+ * Added CONTRIBUTING.md.
687+
688+ * Improved INSTALL instructions.
689+
690+ * `make-windows-installer.bat`: Removed explicit paths for executables.
691+
692+ * `aeson` is now used instead of `json` for JSON.
693+
694+ * Set default stack size to 16M. This is needed for some large
695+ conversions, esp. if pandoc is compiled with 64-bit ghc.
696+
697+ * Various small documentation improvements.
698+ Thanks to achalddave and drothlis for patches.
699+
700+ * Removed comment that chokes recent versions of CPP (#933).
701+
702+ * Removed support for GHC version < 7.2, since pandoc-types now
703+ requires at least GHC 7.2 for GHC generics.
704+
705+
706+pandoc (1.11.1)
707+
708+ * Markdown reader:
709+
710+ + Fixed regression in which parentheses were lost in link URLs.
711+ Added tests. Closes #786.
712+ + Better handling of unmatched double quotes in `--smart` mode.
713+ These occur frequently in fiction, since it is customary not to
714+ close quotes in dialogue if the speaker does not change between
715+ paragraphs. The unmatched quotes now get turned into literal
716+ left double quotes. (No `Quoted` inline is generated, however.)
717+ Closes #99 (again).
718+
719+ * HTML writer: Fixed numbering mismatch between TOC and sections.
720+ `--number-offset` now affects TOC numbering as well
721+ as section numbering, as it should have all along. Closes #789.
722+
723+ * Markdown writer: Reverted 1.11 change that caused citations to be rendered
724+ as markdown citations, even if `--bibliography` was specified, unless
725+ `citation` extension is disabled. Now, formatted citations are always
726+ printed if `--bibliography` was specified. If you want to reformat
727+ markdown keeping pandoc markdown citations intact, don't use
728+ `--bibliography`. Note that citations parsed from LaTeX documents will
729+ be rendered as pandoc markdown citations when `--bibliography` is not
730+ specified.
731+
732+ * ODT writer: Fixed regression leading to corrupt ODTs.
733+ This was due to a change in the `Show` instance for
734+ `Text.Pandoc.Pretty.Doc`. Closes #780.
735+
736+ * Fixed spacing bugs involving code block attributes in
737+ RST reader and Markdown writer. Closes #763.
738+
739+ * Windows package: Various improvements due to Fyodor Sheremetyev.
740+
741+ + Automatically set installation path (Program Files or Local App Data).
742+ + Set system PATH environment variable when installing for all users.
743+ + Pandoc can installed for all users using the following command.
744+ `msiexec /i pandoc-1.11.msi ALLUSERS=1`.
745+
746+ * Bumped QuickCheck version bound.
747+
748+pandoc (1.11)
749+
750+ * Added `--number-offset` option. (See README for description.)
751+
752+ * Added `--default-image-extension` option. (See README for description.)
753+
754+ * `--number-sections` behavior change: headers with class `unnumbered`
755+ will not be numbered.
756+
757+ * `--version` now reports the default data directory.
758+
759+ * `Text.Pandoc.Parsing` is no longer exposed. (API change.)
760+
761+ * `Text.Pandoc.Highlighting` is no longer exposed. (API change.)
762+
763+ * `Text.Pandoc.Shared`: Changed type of `Element`. `Sec` now includes
764+ a field for `Attr` rather than just `String`. (API change.)
765+
766+ * Added `markdown_github` as input format. This was an accidental
767+ omission in 1.10.
768+
769+ * Added `readerDefaultImageExtension` field to `ReaderOptions`. (API
770+ change.)
771+
772+ * Added `writerNumberOffset` field in `WriterOptions`. (API change.)
773+
774+ * Beamer template:
775+
776+ + Fixed captions with longtable. Thanks to Joost Kremers.
777+ + Provide `\Oldincludegraphics` as in LaTeX template (Benjamin Bannier).
778+
779+ * LaTeX template:
780+
781+ + Load microtype after fonts. Microtype needs to know
782+ what fonts are being used. Thanks to dfc for the patch.
783+ + Set `secnumdepth` to 5 if `--number-sections` specified.
784+ This yields behavior equivalent to the other writers, numbering
785+ level 4 and 5 headers too. Closes #753.
786+
787+ * HTML reader:
788+
789+ + Handle `<colgroup>` tag.
790+ + Preserve all header attributes.
791+
792+ * LaTeX reader:
793+
794+ + Parse `\hrule` as `HorizontalRule`. Closes #746.
795+ + Parse starred variants of `\section` etc. as headers with
796+ attribute `unnumbered`.
797+ + Read optional attributes in `lstlisting` and `Verbatim` environments.
798+ We convert these to pandoc standard names, e.g. `numberLines`
799+ for `numbers=left`, `startFrom=100` from `firstnumber=100`.
800+ + Handle language attribute for lstlistings.
801+ + Better support for Verbatim and minted environments. Closes #763.
802+
803+ * Markdown reader:
804+
805+ + `-` in an attribute context = `.unnumbered`. The point of this
806+ is to provide a way to specify unnumbered headers in non-English
807+ documents.
808+ + Fixed bug parsing key/value attributes. Parsing failed if you
809+ had an unquoted attribute immediately before the final '}'.
810+ + Make backslash escape work in attributes.
811+ + Fix title block parsing. Now if `mmd_title_blocks` is specified,
812+ pandoc will parse a MMD title block if it sees one, even if
813+ `pandoc_title_blocks` is enabled.
814+ + Refactoring: `litChar` now includes entities, so we don't need
815+ to use `fromEntities` e.g. on titles.
816+ + Allow spaces around borders in pipe tables. Closes #772.
817+ + Allow all punctuation in angle-bracket autolinks. Previously
818+ things like `----` were disallowed, because the uri parser
819+ treated them as trailing punctuation. Closes #768.
820+ + Make `implicit_header_references` work properly when
821+ headers are given explicit identifiers.
822+ + Check for tables before line blocks. Otherwise some pipe
823+ tables get treated as line blocks.
824+ + Allow `&` in emails (for entities).
825+ + Properly handle entities in titles and links. A markdown link
826+ `<http://göogle.com>` should be a link to `http://göogle.com`.
827+ Closes #723.
828+
829+ * Textile reader:
830+
831+ + Handle attributes on headers.
832+
833+ * LaTeX reader:
834+
835+ + Add `fig:` as title for images with captions.
836+ This is needed for them to be rendered as figures. Closes #766.
837+ + Never emit an empty paragraph. See #761.
838+ + Handle `\caption` for images in figures. Closes #766.
839+ + Parse `\section*`, etc. as unnumbered sections.
840+
841+ * HTML writer:
842+
843+ + Support header attributes. The attributes go on
844+ the enclosing `section` or `div` tag if `--section-divs` is specified.
845+ + Fixed a regression (only now noticed) in html+lhs output.
846+ Previously the bird tracks were being omitted.
847+
848+ * LaTeX writer:
849+
850+ + Omit lists with no items to avoid LaTeX errors.
851+ + Support line numbering with `--listings`.
852+ If `numberLines` class is present, we add `numbers=left`;
853+ if `startFrom` is present, we add `firstnumber=`. (#763)
854+
855+ * ConTeXt writer:
856+
857+ + Removed `\placecontent`. This produced a duplicate toc,
858+ in conjunction with `\placelist`.
859+ + Use `\title`, `\subject` etc. for headers with
860+ `unnumbered` class.
861+
862+ * Textile writer:
863+
864+ + Support header attributes.
865+
866+ * Markdown writer:
867+
868+ + Use grid tables when needed, and if enabled. Closes #740.
869+ + Render citations as pandoc-markdown citations.
870+ Previously citations were rendered as citeproc-formatted citations
871+ by default. Now we render them as pandoc citations, e.g. `[@item1]`,
872+ unless the `citations` extension is disabled.
873+ If you still want formatted citations in your markdown output,
874+ use `pandoc -t markdown-citations`.
875+
876+ * RST writer:
877+
878+ + Support `:number-lines:` in code blocks.
879+
880+ * Docx writer:
881+
882+ + Better treatment of display math. Display math inside a
883+ paragraph is now put in a separate paragraph, so it will render
884+ properly (centered and without extra blank lines around it).
885+ Partially addresses #742.
886+ + Content types and document rels xml files are now created from
887+ scratch, rather than being taken over from `reference.docx`.
888+ This fixes problems that arise when you edit the `reference.docx`
889+ with Word.
890+ + We also now encode mime types for each individual image rather
891+ than using defaults. This should allow us to handle a wider
892+ range of image types (including PDF). Closes #414.
893+ + Changed style names in `reference docx`.
894+ `FootnoteReference` -> `FootnoteRef`, `Hyperlink` -> `Link`.
895+ The old names got changed by Word when the `reference.docx` was
896+ edited. Closes #414.
897+
898+ * EPUB writer:
899+
900+ + Fix section numbering. Previously the numbering restarted from 1
901+ in each chapter (with `--number-sections`), though the numbers in
902+ the table of contents were correct.
903+ + Headers with "unnumbered" attribute are not numbered. (Nor do they
904+ cause an increment in running numbering.) Section numbers now work
905+ properly, even when there is material before the first numbered section.
906+ + Include HTML TOC, even in epub2. The TOC is included in `<spine>`,
907+ but `linear` is set to `no` unless the `--toc` option is specified.
908+ Include `<guide>` element in OPF. This should allow the TOC to
909+ be useable in Kindles when converted with kindlegen. Closes #773.
910+
911+ * `Text.Pandoc.Parsing`: Optimized `oneOfStringsCI`.
912+ This dramatically reduces the speed penalty that comes from enabling the
913+ `autolink_bare_uris` extension. The penalty is still substantial (in one
914+ test, from 0.33s to 0.44s), but nowhere near what it used to be.
915+ The RST reader is also much faster now, as it autodetects URIs.
916+
917+ * `Text.Pandoc.Shared`: `hierarchicalize` will not number section
918+ with class "unnumbered". Unnumbered sections get `[]` for their
919+ section number.
920+
921+ * `Text.Pandoc.Pretty`:
922+
923+ + Fixed `chomp` so it works inside `Prefixed` elements.
924+ + Changed `Show` instance so it is better for debugging.
925+
926+ * `Text.Pandoc.ImageSize`: Added `Pdf` to `ImageType`.
927+
928+ * `Text.Pandoc.UTF8`: Strip off BOM if present. Closes #743.
929+
930+ * Windows installer improvements:
931+
932+ + The installer is now signed with a certificate (thanks to
933+ Fyodor Sheremetyev).
934+ + WiX is used instead of InnoSetup. The installer is now a
935+ standard msi file.
936+ + The version number is now auto-detected, and need not be
937+ updated separately.
938+
939+ * OSX installer improvements:
940+
941+ + The package and pandoc executable are now signed with a
942+ certificate (thanks to Fyodor Sheremetyev).
943+ + RTF version of license is used.
944+ + Use full path for sysctl in `InstallationCheck` script (jonahbull).
945+ Closes #580.
946+
947+ * Converted COPYING to markdown.
948+
949+ * pandoc.cabal: Require latest versions of highlighting-kate,
950+ texmath, citeproc-hs, zip-archive.
951+
952+pandoc (1.10.1)
953+
954+ * Markdown reader: various optimizations, leading to a
955+ significant performance boost.
956+
957+ * RST reader: Allow anonymous form of inline links:
958+ `` `hello <url>`__ `` Closes #724.
959+
960+ * Mediawiki reader: Don't require newlines after tables.
961+ Thanks to jrunningen for the patch. Closes #733.
962+
963+ * Fixed LaTeX macro parsing. Now LaTeX macro definitions are preserved
964+ when output is LaTeX, and applied when it is another format.
965+ Partially addresses #730.
966+
967+ * Markdown and RST readers: Added parser to `block` that skips blank
968+ lines. This fixes a subtle regression involving grid tables with
969+ empty cells. Also added test for grid table with empty cells.
970+ Closes #732.
971+
972+ * RST writer: Use `.. code:: language` for code blocks with language.
973+ Closes #721.
974+
975+ * DocBook writer: Fixed output for hard line breaks, adding a newline
976+ between `<literallayout>` tags.
977+
978+ * Markdown writer: Use an autolink when link text matches url.
979+ Previously we also checked for a null title, but this
980+ test fails for links produced by citeproc-hs in bibliographies.
981+ So, if the link has a title, it will be lost on conversion
982+ to an autolink, but that seems okay.
983+
984+ * Markdown writer: Set title, author, date variables as before.
985+ These are no longer used in the default template, since we use
986+ titleblock, but we set them anyway for those who use custom templates.
987+
988+ * LaTeX writer: Avoid extra space at start/end of table cell.
989+ Thanks to Nick Bart for the suggestion of using @{}.
990+
991+ * `Text.Pandoc.Parsing`:
992+
993+ + More efficient version of `anyLine`.
994+ + Type of `macro` has changed; the parser now returns `Blocks`
995+ instead of `Block`.
996+
997+ * Relaxed old-time version bound, allowing 1.0.*.
998+
999+ * Removed obsolete `hsmarkdown` script. Those who need `hsmarkdown`
1000+ should create a symlink as described in the README.
1001+
1002+pandoc (1.10.0.5)
1003+
1004+ * Markdown reader: Try `lhsCodeBlock` before `rawTeXBlock`. Otherwise
1005+ `\begin{code}...\end{code}` isn't handled properly in markdown+lhs.
1006+ Thanks to Daniel Miot for noticing the bug and suggesting the fix.
1007+
1008+ * Markdown reader: Fixed bug with headerless grid tables.
1009+ The 1.10 code assumed that each table header cell contains exactly one
1010+ block. That failed for headerless tables (0) and also for tables with
1011+ multiple blocks in a header cell. The code is fixed and tests provided.
1012+ Thanks to Andrew Lee for pointing out the bug.
1013+
1014+ * Markdown reader: Fixed regressions in fenced code blocks. Closes #722.
1015+
1016+ + Tilde code fences can again take a bare language string
1017+ (`~~~ haskell`), not just curly-bracketed attributes
1018+ (`~~~ {.haskell}`).
1019+ + Backtick code blocks can take the curly-bracketed attributes.
1020+ + Backtick code blocks don't *require* a language.
1021+ + Consolidated code for the two kinds of fenced code blocks.
1022+
1023+ * LaTeX template: Use `\urlstyle{same}` to avoid monospace URLs.
1024+
1025+ * Markdown writer: Use proportional font for email autolinks with
1026+ obfuscation. Closes #714.
1027+
1028+ * Corrected name of `blank_before_blockquote` in README. Closes #718.
1029+
1030+ * `Text.Pandoc.Shared`: Fixed bug in `uri` parser.
1031+ The bug prevented an autolink at the end of a string (e.g.
1032+ at the end of a line block line) from counting as a link. Closes #711.
1033+
1034+ * Use the `hsb2hs` preprocessor instead of TH for embed_data_files.
1035+ This should work on Windows, unlike the TH solution with
1036+ file-embed.
1037+
1038+ * Eliminated use of TH in test suite.
1039+
1040+ * Added `Text.Pandoc.Data` (non-exported) to hold the association
1041+ list of embedded data files, if the `embed_data_files` flag is selected.
1042+ This isolates the code that needs special treatment with file-embed or
1043+ `hsb2hs`.
1044+
1045+ * Changes to `make-windows-installer.bat`.
1046+
1047+ + Exit batch file if any of the cabal-dev installs fail.
1048+ + There's no longer any need to reinstall `highlighting-kate`.
1049+ + Don't start with a `cabal update`; leave that to the user.
1050+ + Force reinstall of pandoc.
1051+
1052+ * Fixed EPUB writer so it builds with blaze-html 0.4.x. Thanks to
1053+ Jens Petersen.
1054+
1055+pandoc (1.10.0.4)
1056+
1057+ * Fixed bug with escaped % in LaTeX reader. Closes #710.
1058+
1059+pandoc (1.10.0.3)
1060+
1061+ * Added further missing fb2 tests to cabal file.
1062+
1063+pandoc (1.10.0.2)
1064+
1065+ * Added fb2 tests to cabal file's extra-source-files.
1066+
1067+pandoc (1.10.0.1)
1068+
1069+ * Bump version bounds on test-framework packages.
1070+
1071+pandoc (1.10)
1072+
1073+ [new features]
1074+
1075+ * New input formats: `mediawiki` (MediaWiki markup).
1076+
1077+ * New output formats: `epub3` (EPUB v3 with MathML),
1078+ `fb2` (FictionBook2 ebooks).
1079+
1080+ * New `--toc-depth` option, specifying how many levels of
1081+ headers to include in a table of contents.
1082+
1083+ * New `--epub-chapter-level` option, specifying the header
1084+ level at which to divide EPUBs into separate files.
1085+ Note that this normally affects only performance, not the
1086+ visual presentation of the EPUB in a reader.
1087+
1088+ * Removed the `--strict` option. Instead of using `--strict`,
1089+ one can now use the format name `markdown_strict` for either input
1090+ or output. This gives more fine-grained control that `--strict`
1091+ did, allowing one to convert from pandoc's markdown to strict
1092+ markdown or vice versa.
1093+
1094+ * It is now possible to enable or disable specific syntax
1095+ extensions by appending them (with `+` or `-`) to the writer
1096+ or reader name. For example,
1097+
1098+ pandoc -f markdown-footnotes+hard_line_breaks
1099+
1100+ disables footnotes and enables treating newlines as hard
1101+ line breaks. The literate Haskell extensions are now implemented
1102+ this way as well, using either `+lhs` or `+literate_haskell`.
1103+ For a list of extension names, see the README under
1104+ "Pandoc's Markdown."
1105+
1106+ * The following aliases have been introduced for specific
1107+ combinations of markdown extensions: `markdown_phpextra`,
1108+ `markdown_github`, `markdown_mmd`, `markdown_strict`. These aliases
1109+ work just like regular reader and writer names, and can be modified
1110+ with extension modifiers as described above. (Note that conversion
1111+ from one markdown dialect to another does not work perfectly,
1112+ because there are differences in markdown parsers besides
1113+ just the extensions, and because pandoc's internal document model is
1114+ not rich enough to capture all of the extensions.)
1115+
1116+ * New `--html-q-tags` option. The previous default was to use `<q>`
1117+ tags for smart quotes in HTML5. But `<q>` tags are also valid HTML4.
1118+ Moreover, they are not a robust way of typesetting quotes, since
1119+ some user agents don't support them, and some CSS resets (e.g.
1120+ bootstrap) prevent pandoc's quotes CSS from working properly.
1121+ We now just insert literal quote characters by default in both
1122+ `html` and `html5` output, but this option is provided for
1123+ those who still want `<q>` tags.
1124+
1125+ * The markdown reader now prints warnings (to stderr) about
1126+ duplicate link and note references. Closes #375.
1127+
1128+ * Markdown syntax extensions:
1129+
1130+ + Added pipe tables. Thanks to François Gannaz for the initial patch.
1131+ These conform to PHP Markdown Extra's pipe table syntax. A subset
1132+ of org-mode table syntax is also supported, which means that you can
1133+ use org-mode's nice table editor to create tables.
1134+
1135+ + Added support for RST-style line blocks. These are
1136+ useful for verse and addresses.
1137+
1138+ + Attributes can now be specified for headers, using the same
1139+ syntax as in code blocks. (However, currently only the
1140+ identifier has any effect in most writers.) For example,
1141+
1142+ # My header {#foo}
1143+
1144+ See [the header above](#foo).
1145+
1146+ + Pandoc will now act as if link references have been defined
1147+ for all headers without explicit identifiers.
1148+ So, you can do this:
1149+
1150+ # My header
1151+
1152+ Link to [My header].
1153+ Another link to [it][My header].
1154+
1155+ Closes #691.
1156+
1157+ * LaTeX reader:
1158+
1159+ + Command macros now work everywhere, including non-math.
1160+ Environment macros still not supported.
1161+ + `\input` now works, as well as `\include`. TEXINPUTS is used.
1162+ Pandoc looks recursively into included files for more included files.
1163+
1164+ [behavior changes]
1165+
1166+ * The Markdown reader no longer puts the text of autolinks in a
1167+ `Code` inline. This means that autolinks will no longer appear
1168+ in a monospace font.
1169+
1170+ * The character `/` can now appear in markdown citation keys.
1171+
1172+ * HTML blocks in strict_markdown are no longer required to begin
1173+ at the left margin. Technically this is required, according to
1174+ the markdown syntax document, but `Markdown.pl` and other markdown
1175+ processors are more liberal.
1176+
1177+ * The `-V` option has been changed so that if there are duplicate
1178+ variables, those specified later on the command line take precedence.
1179+
1180+ * Tight lists now work in LaTeX and ConTeXt output.
1181+
1182+ * The LaTeX writer no longer relien on the `enumerate` package.
1183+ Instead, it uses standard LaTeX commands to change the list numbering
1184+ style.
1185+
1186+ * The LaTeX writer now uses `longtable` instead of `ctable`. This allows
1187+ tables to be split over page boundaries.
1188+
1189+ * The RST writer now uses a line block to render paragraphs containing
1190+ linebreaks (which previously weren't supported at all).
1191+
1192+ * The markdown writer now applies the `--id-prefix` to footnote IDs.
1193+ Closes #614.
1194+
1195+ * The plain writer no longer uses backslash-escaped line breaks
1196+ (which are not very "plain").
1197+
1198+ * `Text.Pandoc.UTF8`: Better error message for invalid UTF8.
1199+ Read bytestring and use `Text`'s decodeUtf8 instead of using
1200+ `System.IO.hGetContents`. This way you get a message saying
1201+ "invalid UTF-8 stream" instead of "invalid byte sequence."
1202+ You are also told which byte caused the problem.
1203+
1204+ * Docx, ODT, and EPUB writers now download images specified by a URL
1205+ instead of skipping them or raising an error.
1206+
1207+ * EPUB writer:
1208+
1209+ + The default CSS now left-aligns headers by default, instead of
1210+ centering. This is more consistent with the rest of the writers.
1211+ + A proper multi-level table of contents is now used in `toc.ncx`.
1212+ There is no longer a subsidiary table of contents at the beginning
1213+ of each chapter.
1214+ + Code highlighting now works by default.
1215+ + Section divs are used by default for better semantic markup.
1216+ + The title is used instead of "Title Page" in the table of contents.
1217+ Otherwise we have a hard-coded English string, which looks
1218+ strange in ebooks written in other languages. Closes #572.
1219+
1220+ * HTML writer:
1221+
1222+ + Put mathjax in span with class "math". Closes #562.
1223+ + Put citations in a span with class "citation." In HTML5, also include
1224+ a `data-cite` attribute with a space-separated list of citation
1225+ keys.
1226+
1227+ * `Text.Pandoc.UTF8`: use universalNewlineMode in reading.
1228+ This treats both `\r\n` and `\n` as `\n` on input, no matter
1229+ what platform we're running on.
1230+
1231+ * Citation processing is now done in the Markdown and LaTeX
1232+ readers, not in `pandoc.hs`. This makes it easier for library users
1233+ to use citations.
1234+
1235+ [template changes]
1236+
1237+ * HTML: Added css to template to preserve spaces in `<code>` tags.
1238+ Thanks to Dirk Laurie.
1239+
1240+ * Beamer: Remove English-centric strings in section pages.
1241+ Section pages used to have "Section" and a number as well as the
1242+ section title. Now they just have the title. Similarly for part
1243+ and subsection. Closes #566.
1244+
1245+ * LaTeX, ConTeXt: Added papersize variable.
1246+
1247+ * LaTeX, Beamer templates: Use longtable instead of ctable.
1248+
1249+ * LaTeX, Beamer templates: Don't require 'float' package for tables.
1250+ We don't actually seem to use the '[H]' option.
1251+
1252+ * LaTeX: Use `upquote` package if it is available. This fixes
1253+ straight quotes in verbatim environments.
1254+
1255+ * Markdown, plain: Fixed titleblock so it is just a single string.
1256+ Previously separate title, author, and date variables were used,
1257+ but this didn't allow different kinds of title blocks.
1258+
1259+ * EPUB:
1260+
1261+ + Rationalized templates. Previously there were three different
1262+ templates involved in epub production. There is now just one
1263+ template, `default.epub` or `default.epub3`. It can now be
1264+ overridden using `--template`, just like other templates.
1265+ The titlepage is now folded into the default template.
1266+ A `titlepage` variable selects it.
1267+ + UTF-8, lang tag, meta tags, title element.
1268+
1269+ * Added scale-to-width feature to beamer template
1270+
1271+ [API changes]
1272+
1273+ * `Text.Pandoc.Definition`: Added `Attr` field to `Header`.
1274+ Previously header identifers were autogenerated by the writers.
1275+ Now they are added in the readers (either automatically or explicitly).
1276+
1277+ * `Text.Pandoc.Builder`:
1278+
1279+ + `Inlines` and `Blocks` are now synonyms for `Many Inline` and
1280+ `Many Block`. `Many` is a newtype wrapper around `Seq`, with
1281+ custom Monoid instances for `Many Inline` and `Many Block. This
1282+ allows `Many` to be made an instance of `Foldable` and `Traversable`.
1283+ + The old `Listable` class has been removed.
1284+ + The module now exports `isNull`, `toList`, `fromList`.
1285+ + The old `Read` and `Show` instances have been removed; derived
1286+ instances are now used.
1287+ + Added `headerWith`.
1288+
1289+ * The readers now take a `ReaderOptions` rather than a `ParserState`
1290+ as a parameter. Indeed, not all parsers use the `ParserState` type;
1291+ some have a custom state. The motivation for this change was to separate
1292+ user-specifiable options from the accounting functions of parser state.
1293+
1294+ * New module `Text.Pandoc.Options`. This includes the `WriterOptions`
1295+ formerly in `Text.Pandoc.Shared`, and its associated
1296+ data types. It also includes a new type `ReaderOptions`, which
1297+ contains many options formerly in `ParserState`, and its associated
1298+ data types:
1299+
1300+ + `ParserState.stateParseRaw` -> `ReaderOptions.readerParseRaw`.
1301+ + `ParserState.stateColumns` -> `ReaderOptions.readerColumns`.
1302+ + `ParserState.stateTabStop` -> `ReaderOptions.readerTabStop`.
1303+ + `ParserState.stateOldDashes` -> `ReaderOptions.readerOldDashes`.
1304+ + `ParserState.stateLiterateHaskell` -> `ReaderOptions.readerLiterateHaskell`.
1305+ + `ParserState.stateCitations` -> `ReaderOptions.readerReferences`.
1306+ + `ParserState.stateApplyMacros` -> `ReaderOptions.readerApplyMacros`.
1307+ + `ParserState.stateIndentedCodeClasses` ->
1308+ `ReaderOptions.readerIndentedCodeClasses`.
1309+ + Added `ReaderOptions.readerCitationStyle`.
1310+
1311+ * `WriterOptions` now includes `writerEpubVersion`, `writerEpubChapterLevel`,
1312+ `writerEpubStylesheet`, `writerEpubFonts`, `writerReferenceODT`,
1313+ `writerReferenceDocx`, and `writerTOCDepth`. `writerEPUBMetadata` has
1314+ been renamed `writerEpubMetadata` for consistency.
1315+
1316+ * Changed signatures of `writeODT`, `writeDocx`, `writeEPUB`, since they no
1317+ longer stylesheet, fonts, reference files as separate parameters.
1318+
1319+ * Removed `writerLiterateHaskell` from `WriterOptions`, and
1320+ `readerLiterateHaskell` from `ReaderOptions`. LHS is now handled
1321+ by an extension (`Ext_literate_haskell`).
1322+
1323+ * Removed deprecated `writerXeTeX`.
1324+
1325+ * Removed `writerStrict` from `WriterOptions`. Added `writerExtensions`.
1326+ Strict is now handled through extensions.
1327+
1328+ * `Text.Pandoc.Options` exports `pandocExtensions`, `strictExtensions`,
1329+ `phpMarkdownExtraExtensions`, `githubMarkdownExtensions`,
1330+ and `multimarkdownExtensions`, as well as the `Extensions` type.
1331+
1332+ * New `Text.Pandoc.Readers.MediaWiki` module, exporting
1333+ `readMediaWiki`.
1334+
1335+ * New `Text.Pandoc.Writers.FB2` module, exporting `writeFB2`
1336+ (thanks to Sergey Astanin).
1337+
1338+ * `Text.Pandoc`:
1339+
1340+ + Added `getReader`, `getWriter` to `Text.Pandoc`.
1341+ + `writers` is now an association list `(String, Writer)`.
1342+ A `Writer` can be a `PureStringWriter`, an `IOStringWriter`, or
1343+ an `IOByteStringWriter`. ALL writers are now in the 'writers'
1344+ list, including the binary writers and FB2 writer. This allows
1345+ code in `pandoc.hs` to be simplified.
1346+ + Changed type of `readers`, so all readers are in IO.
1347+ Users who want pure readers can still get them form the reader
1348+ modules; this just affects the function `getReader` that looks up
1349+ a reader based on the format name. The point of this change is to
1350+ make it possible to print warnings from the parser.
1351+
1352+ * `Text.Pandoc.Parsing`:
1353+
1354+ + `Text.Parsec` now exports all Parsec functions used in pandoc code.
1355+ No other module directly imports Parsec. This will make it easier
1356+ to change the parsing backend in the future, if we want to.
1357+ + `Text.Parsec` is used instead of `Text.ParserCombinators.Parsec`.
1358+ + Export the type synonym `Parser`.
1359+ + Export `widthsFromIndices`, `NoteTable'`, `KeyTable'`, `Key'`, `toKey'`,
1360+ `withQuoteContext`, `singleQuoteStart`, `singleQuoteEnd`,
1361+ `doubleQuoteStart`, `doubleQuoteEnd`, `ellipses`, `apostrophe`,
1362+ `dash`, `nested`, `F(..)`, `askF`, `asksF`, `runF`, `lineBlockLines`.
1363+ + `ParserState` is no longer an instance of `Show`.
1364+ + Added `stateSubstitutions` and `stateWarnings` to `ParserState`.
1365+ + Generalized type of `withQuoteContext`.
1366+ + Added `guardEnabled`, `guardDisabled`, `getOption`.
1367+ + Removed `failIfStrict`.
1368+ + `lookupKeySrc` and `fromKey` are no longer exported.
1369+
1370+ * `Data.Default` instances are now provided for `ReaderOptions`,
1371+ `WriterOptions`, and `ParserState`. `Text.Pandoc` re-exports `def`.
1372+ Now you can use `def` (which is re-exported by `Text.Pandoc`) instead
1373+ of `defaultWriterOptions` (which is still defined). Closes #546.
1374+
1375+ * `Text.Pandoc.Shared`:
1376+
1377+ + Added `safeRead`.
1378+ + Renamed `removedLeadingTrailingSpace` to `trim`,
1379+ `removeLeadingSpace` to `triml`, and `removeTrailingSpace` to `trimr`.
1380+ + Count `\r` as space in `trim` functions.
1381+ + Moved `renderTags'` from HTML reader and `Text.Pandoc.SelfContained`
1382+ to `Shared`.
1383+ + Removed `failUnlessLHS`.
1384+ + Export `compactify'`, formerly in Markdown reader.
1385+ + Export `isTightList`.
1386+ + Do not export `findDataFile`.
1387+ + `readDataFile` now returns a strict ByteString.
1388+ + Export `readDataFileUTF8` which returns a String, like the
1389+ old `readDataFile`.
1390+ + Export `fetchItem` and `openURL`.
1391+
1392+ * `Text.Pandoc.ImageSize`: Use strict, not lazy bytestrings.
1393+ Removed `readImageSize`.
1394+
1395+ * `Text.Pandoc.UTF8`: Export `encodePath`, `decodePath`,
1396+ `decodeArg`, `toString`, `fromString`, `toStringLazy`,
1397+ `fromStringLazy`.
1398+
1399+ * `Text.Pandoc.UTF8` is now an exposed module.
1400+
1401+ * `Text.Pandoc.Biblio`:
1402+
1403+ + csl parameter now a `String` rather than a `FilePath`.
1404+ + Changed type of `processBiblio`. It is no longer in the IO monad.
1405+ It now takes a `Maybe Style` argument rather than parameters for CSL
1406+ and abbrev filenames. (`pandoc.hs` now calls the functions to parse
1407+ the style file and add abbreviations.)
1408+
1409+ * Markdown reader now exports `readMarkdownWithWarnings`.
1410+
1411+ * `Text.Pandoc.RTF` now exports `writeRTFWithEmbeddedImages` instead of
1412+ `rtfEmbedImage`.
1413+
1414+ [bug fixes]
1415+
1416+ * Make `--ascii` work properly with `--self-contained`. Closes #568.
1417+
1418+ * Markdown reader:
1419+
1420+ + Fixed link parser to avoid exponential slowdowns. Closes #620.
1421+ Previously the parser would hang on input like this:
1422+
1423+ [[[[[[[[[[[[[[[[[[hi
1424+
1425+ We fixed this by making the link parser parser characters
1426+ between balanced brackets (skipping brackets in inline code spans),
1427+ then parsing the result as an inline list. One change is that
1428+
1429+ [hi *there]* bud](/url)
1430+
1431+ is now no longer parsed as a link. But in this respect pandoc behaved
1432+ differently from most other implementations anyway, so that seems okay.
1433+
1434+ + Look for raw html/latex blocks before tables.
1435+ Otherwise the following gets parsed as a table:
1436+
1437+ \begin{code}
1438+ --------------
1439+ -- My comment.
1440+ \end{code}
1441+
1442+ Closes #578.
1443+
1444+ * RST reader:
1445+
1446+ + Added support for `:target:` on `.. image::` blocks
1447+ and substitutions.
1448+ + Field list fixes:
1449+
1450+ - Fixed field lists items with body beginning after a new line
1451+ (Denis Laxalde).
1452+ - Allow any char but ':' in names of field lists in RST reader
1453+ (Denis Laxalde).
1454+ - Don't allow line breaks in field names.
1455+ - Require whitespace after field list field names.
1456+ - Don't create empty definition list for metadata field lists.
1457+ Previously a field list consisting only of metadata fields (author,
1458+ title, date) would be parsed as an empty DefinitionList, which is
1459+ not legal in LaTeX and not needed in any format.
1460+
1461+ + Don't recognize inline-markup starts inside words.
1462+ For example, `2*2 = 4*1` should not contain an emphasized
1463+ section. Added test case for "Literal symbols". Closes #569.
1464+ + Allow dashes as separator in simple tables. Closes #555.
1465+ + Added support for `container`, `compound`, `epigraph`,
1466+ `rubric`, `highlights`, `pull-quote`.
1467+ + Added support for `.. code::`.
1468+ + Made directive labels case-insensitive.
1469+ + Removed requirement that directives begin at left margin.
1470+ This was (correctly) not in earlier releases; docutils doesn't
1471+ make the requirement.
1472+ + Added support for `replace::` and `unicode::` substitutions.
1473+ + Ignore unknown interpreted roles.
1474+ + Renamed image parser to `subst`, since it now handles all
1475+ substitution references.
1476+
1477+ * Textile reader:
1478+
1479+ + Allow newlines before pipes in table. Closes #654.
1480+ + Fixed bug with list items containing line breaks.
1481+ Now pandoc correctly handles hard line breaks inside list items.
1482+ Previously they broke list parsing.
1483+ + Implemented comment blocks.
1484+ + Fixed bug affected words ending in hyphen.
1485+ + Properly handle links with surrounding brackets.
1486+ Square brackets need to be used when the link isn't surrounded by
1487+ spaces or punctuation, or when the URL ending may be ambiguous.
1488+ Closes #564.
1489+ + Removed nullBlock. Better to know about parsing problems than
1490+ to skip stuff when we get stuck.
1491+ + Allow ID attributes on headers.
1492+ + Textile reader: Avoid parsing dashes as strikeout.
1493+ Previously the input
1494+
1495+ text--
1496+ text--
1497+ text--
1498+ text--
1499+
1500+ would be parsed with strikeouts rather than dashes. This fixes
1501+ the problem by requiring that a strikeout delimiting - not be
1502+ followed by a -. Closes #631.
1503+ + Expanded list of `stringBreakers`.
1504+ This fixes a bug on input like "(_hello_)" which should
1505+ be a parenthesized emphasized "hello".
1506+ The new list is taken from the PHP source of textile 2.4.
1507+ + Fixed autolinks. Previously the textile reader and writer
1508+ incorrectly implented RST-style autolinks for URLs and email
1509+ addresses. This has been fixed. Now an autolink is done this way:
1510+ `"$":http://myurl.com`.
1511+ + Fixed footnotes bug in textile. This affected notes occuring
1512+ before punctuation, e.g. `foo[1].`. Closes #518.
1513+
1514+ * LaTeX reader:
1515+
1516+ + Better handling of citation commands.
1517+ + Better handling of `\noindent`.
1518+ + Added a 'try' in rawLaTeXBlock, so we can handle `\begin` without `{`.
1519+ Closes #622.
1520+ + Made `rawLaTeXInline` try to parse block commands as well. This
1521+ is usually what we want, given how `rawLaTeXInline` is used in
1522+ the markdown and textile readers. If a block-level LaTeX command
1523+ is used in the middle of a paragraph (e.g. `\subtitle` inside a title),
1524+ we can treat it as raw inline LaTeX.
1525+ + Handle \slash command. Closes #605.
1526+ + Basic `\enquote` support.
1527+ + Fixed parsing of paragraphs beginning with a group. Closes #606.
1528+ + Use curly quotes for bare straight quotes.
1529+ + Support obeylines environment. Closes #604.
1530+ + Guard against "begin", "end" in inlineCommand and
1531+ blockCommand.
1532+ + Better error messages for environments. Now it should tell you that
1533+ it was looking for \end{env}, instead of giving "unknown parse error."
1534+
1535+ * HTML reader:
1536+
1537+ + Added HTML 5 tags to list of block-level tags.
1538+ + HTML reader: Fixed bug in `htmlBalanced`, which
1539+ caused hangs in parsing certain markdown input using
1540+ strict mode.
1541+ + Parse `<q>` as `Quoted DoubleQuote`.
1542+ + Handle nested `<q>` tags properly.
1543+ + Modified `htmlTag` for fewer false positives.
1544+ A tag must start with `<` followed by `!`,`?`, `/`, or a letter.
1545+ This makes it more useful in the wikimedia and markdown parsers.
1546+
1547+ * DocBook reader: Support title in "figure" element. Closes #650.
1548+
1549+ * MediaWiki writer:
1550+
1551+ + Remove newline after `<br/>` in translation of `LineBreak`
1552+ There's no particular need for a newline (other than making the
1553+ generated MediaWiki source look nice to a human), and in fact
1554+ sometimes it is incorrect: in particular, inside an enumeration, list
1555+ items cannot have embedded newline characters. (Brent Yorgey)
1556+ + Use `<code>` not `<tt>` for Code.
1557+
1558+ * Man writer: Escape `-` as `\-`.
1559+ Unescaped `-`'s become hyphens, while `\-`'s are left as ascii minus
1560+ signs. That is preferable for use with command-line options. See
1561+ <http://lintian.debian.org/tags/hyphen-used-as-minus-sign.html>. Thanks
1562+ to Andrea Bolognani for bringing the issue to our attention.
1563+
1564+ * RST writer:
1565+
1566+ + Improved line block output. Use nonbreaking spaces for
1567+ initial indent (otherwise lost in HTML and LaTeX).
1568+ Allow multiple paragraphs in a single line block.
1569+ Allow soft breaks w continuations in line blocks.
1570+ + Properly handle images with no alt text. Closes #678.
1571+ + Fixed bug with links with duplicate text. We now (a) use anonymous
1572+ links for links with inline URLs, and (b) use an inline link instead
1573+ of a reference link if the reference link would require a label that
1574+ has already been used for a different link. Closes #511.
1575+ + Fixed hyperlinked images. Closes #611. Use `:target:`
1576+ field when you have a simple linked image.
1577+ + Don't add `:align: center` to figures.
1578+
1579+ * Texinfo writer: Fixed internal cross-references.
1580+ Now we insert anchors after each header, and use `@ref` instead of `@uref`
1581+ for links. Commas are now escaped as `@comma{}` only when needed;
1582+ previously all commas were escaped. (This change is needed, in part,
1583+ because `@ref` commands must be followed by a real comma or period.) Also
1584+ insert a blank line in from of `@verbatim` environments.
1585+
1586+ * DocBook writer:
1587+
1588+ + Made --id-prefix work in DocBook as well as HTML.
1589+ Closes #607.
1590+ + Don't include empty captions in figures. Closes #581.
1591+
1592+ * LaTeX writer:
1593+
1594+ + Use `\hspace*` for nonbreaking space after line break,
1595+ since `~` spaces after a line break are just ignored.
1596+ Closes #687.
1597+ + Don't escape `_` in URLs or hyperref identifiers.
1598+ + Properly escape strings inside \url{}. Closes #576.
1599+ + Use `[fragile]` only for slides containing code rendered
1600+ using listings. Closes #649.
1601+ + Escape `|` as `\vert` in LaTeX math. This avoids a clash with
1602+ highlighting-kate's macros, which redefine `|` as a short verbatim
1603+ delimiter. Thanks to Björn Peemöller for raising this issue.
1604+ + Use minipage rather than parbox for block containers in tables.
1605+ This allows verbatim code to be included in grid tables.
1606+ Closes #663.
1607+ + Prevent paragraphs containing only linebreaks or spaces.
1608+
1609+ * HTML writer:
1610+
1611+ + Included `highlighting-css` for code spans, too.
1612+ Previously it was only included if used in a code block. Closes #653.
1613+ + Improved line breaks with `<dd>` tags. We now put a newline between
1614+ `</dd>` and `<dd>` when there are multiple definitions.
1615+ + Changed mathjax cdn url so it doesn't use https. (This caused
1616+ problems when used with `--self-contained`.) See #609.
1617+
1618+ * EPUB writer:
1619+
1620+ + `--number-sections` now works properly.
1621+ + Don't strip meta and link elements in epub metadata.
1622+ Patch from aberrancy. Closes #589.
1623+ + Fixed a couple validation bugs.
1624+ + Use ch001, ch002, etc. for chapter filenames. This improves sorting
1625+ of chapters in some readers, which apparently sort ch2 after ch10.
1626+ Closes #610.
1627+
1628+ * ODT writer: properly set title property (Arlo O'Keeffe).
1629+
1630+ * Docx writer:
1631+
1632+ + Fixed bug with nested lists. Previously a list like
1633+
1634+ 1. one
1635+ - a
1636+ - b
1637+ 2. two
1638+
1639+ would come out with a bullet instead of "2."
1640+ Thanks to Russell Allen for reporting the bug.
1641+ + Use `w:cr` in `w:r` instead of `w:br` for linebreaks.
1642+ This seems to fix a problem viewing pandoc-generated
1643+ docx files in LibreOffice.
1644+ + Use integer ids for bookmarks. Closes #626.
1645+ + Added nsid to abstractNum elements. This helps when merging
1646+ word documents with numbered or bulleted lists. Closes #627.
1647+ + Use separate footnotes.xml for notes.
1648+ This seems to help LibreOffice convert the file, even though
1649+ it was valid docx before. Closes #637.
1650+ + Use rIdNN identifiers for r:embed in images.
1651+ + Avoid reading image files again when we've already processed them.
1652+ + Fixed typo in `referenc.docx` that prevented image captions from
1653+ working. Thanks to Huashan Chen.
1654+
1655+ * `Text.Pandoc.Parsing`:
1656+
1657+ + Fixed bug in `withRaw`, which didn't correctly handle the case
1658+ where nothing is parsed.
1659+ + Made `emailAddress` parser more correct. Now it is based on RFC 822,
1660+ though it still doesn't implement quoted strings in email addresses.
1661+ + Revised URI parser. It now allows many more schemes, allows
1662+ uppercase URIs, and better handles trailing punctuation and
1663+ trailing slashes in bare URIs. Added many tests.
1664+ + Simplified and improved singleQuoteStart. This makes `'s'`, `'l'`,
1665+ etc. parse properly. Formerly we had some English-centric heuristics,
1666+ but they are no longer needed. Closes #698.
1667+
1668+ * `Text.Pandoc.Pretty`: Added wide punctuation range to `charWidth`.
1669+ This fixes bug with Chinese commas in markdown and reST tables, and
1670+ a bug that caused combining characters to be dropped.
1671+
1672+ * `Text.Pandoc.MIME`: Added MIME types for .wof and .eot. Closes #640.
1673+
1674+ * `Text.Pandoc.Biblio`:
1675+
1676+ + Run `mvPunc` and `deNote` on metadata too.
1677+ This fixed a bug with notes on titles using footnote styles.
1678+ + Fixed bug in fetching CSL files from CSL data directory.
1679+
1680+ * `pandoc.hs`: Give correct value to `writerSourceDirectory` when a URL
1681+ is provided. It should be the URL up to the path.
1682+
1683+ * Fixed/simplified diff output for tests.
1684+ Biblio: Make sure mvPunc and deNote run on metadata too.
1685+ This fixed a bug with notes on titles using footnote styles.
1686+
1687+ [under the hood improvements]
1688+
1689+ * We no longer depend on `utf8-string`. Instead we use functions
1690+ defined in `Text.Pandoc.UTF8` that use `Data.Text`'s conversions.
1691+
1692+ * Use `safeRead` instead of using `reads` directly (various modules).
1693+
1694+ * "Implicit figures" (images alone in a paragraph) are now handled
1695+ differently. The markdown reader gives their titles the prefix `fig:`; the
1696+ writers look for this before treating the image as a figure. Though this
1697+ is a bit of a hack, it has two advantages: (i) implicit figures can be
1698+ limited to the markdown reader, and (ii) they can be deactivated by turning
1699+ off the `implicit_figures` extension.
1700+
1701+ * `catch` from `Control.Exception` is now used instead of the
1702+ old Preface `catch`.
1703+
1704+ * `Text.Pandoc.Shared`: Improved algorithm for `normalizeSpaces`
1705+ and `oneOfStrings` (which is now non-backtracking).
1706+
1707+ * `Text.Pandoc.Biblio`: Remove workaround for `toCapital`.
1708+ Now citeproc-hs is fixed upstream, so this is no longer needed.
1709+ Closes #531.
1710+
1711+ * Textile reader: Improved speed of `hyphenedWords`.
1712+ This speeds up the textile reader by about a factor of 4.
1713+
1714+ * Use `Text.Pandoc.Builder` in RST reader, for more flexibility,
1715+ better performance, and automatic normalization.
1716+
1717+ * Major rewrite of markdown reader:
1718+
1719+ + Use `Text.Pandoc.Builder` instead of lists. This also
1720+ means that everything is normalized automatically.
1721+ + Move to a one-pass parsing strategy, returning values in the reader
1722+ monad, which are then run (at the end of parsing) against the final
1723+ parser state.
1724+
1725+ * In HTML writer, we now use `toHtml` instead of pre-escaping.
1726+ We work around the problem that blaze-html unnecessarily escapes `'`
1727+ by pre-escaping just the `'` characters, instead of the whole string.
1728+ If blaze-html later stops escaping `'` characters, we can simplify
1729+ `strToHtml` to `toHtml`. Closes #629.
1730+
1731+ * Moved code for embedding images in RTFs from `pandoc.hs` to the
1732+ RTF writer (which now exports `writeRTFWithEmbeddedImages`).
1733+
1734+ * Moved citation processing from `pandoc.hs` into the readers.
1735+ This makes things more convenient for library users.
1736+
1737+ * The man pages are now built by an executable `make-pandoc-man-pages`,
1738+ which has its own stanza in the cabal file so that dependencies can be
1739+ handled by Cabal. Special treatment in `Setup.hs` ensures that this
1740+ executable never gets installed; it is only used to create the man pages.
1741+
1742+ * The cabal file has been modified so that the pandoc library is used
1743+ in building the pandoc executable. (This required moving `pandoc.hs`
1744+ from `src` to `.`.) This cuts compile time in half.
1745+
1746+ * `-O2` is no longer used in building pandoc. The performance improvement
1747+ it yields is so slight that it is not worth it. (Measured with
1748+ benchmarks on ghc 7.4.)
1749+
1750+ * The `executable` and `library` flags have been removed.
1751+
1752+ * `-threaded` has been removed from ghc-options.
1753+
1754+ * Version bounds of dependencies have been raised, and the
1755+ `blaze_html_0_5` flag now defaults to True. Pandoc now compiles on
1756+ GHC 7.6.
1757+
1758+ * We now require base >= 4.2.
1759+
1760+ * Integrated the benchmark program into cabal. One can now do:
1761+
1762+ cabal configure --enable-benchmarks && cabal build
1763+ cabal bench --benchmark-option='markdown' --benchmark-option='-s 20'
1764+
1765+ The benchmark now uses README + testsuite, so benchmark results
1766+ from older versions aren't comparable.
1767+
1768+ * Integrated test suite with cabal.
1769+ To run tests, configure with `--enable-tests`, then `cabal test`.
1770+ You can specify particular tests using `--test-options='-t markdown'`.
1771+ No output is shown unless tests fail. The Haskell test modules
1772+ have been moved from `src/` to `tests/`.
1773+
1774+ * Moved all data files and templates to the `data/` subdirectory.
1775+
1776+ * Added an `embed_data_files` cabal flag. This causes all
1777+ data files to be embedded in the binary, so that the binary
1778+ is self-sufficient and can be relocated anywhere, copied on
1779+ a USB key, etc. The Windows installer now uses this.
1780+ (Since we no longer have the option to build the executable
1781+ without the library, this is the only way to get a relocatable
1782+ binary on Windows.)
1783+
1784+ * Removed pcre3.dll from windows package.
1785+ It isn't needed unless highlighting-kate is compilled with the
1786+ `pcre-light` flag. By default, regex-prce-builtin is used.
1787+
1788+
1789+pandoc (1.9.4.2)
1790+
1791+ * Don't encode/decode file paths if base >= 4.4.
1792+ Prior to base 4.4, filepaths and command line arguments were treated
1793+ as unencoded lists of bytes, not unicode strings, so we had to work
1794+ around that by encoding and decoding them. This commit adds CPP
1795+ checks for the base version that intelligibly enable encoding/decoding
1796+ when needed. Fixes a bug with multilingual filenames when pandoc was
1797+ compiled with ghc 7.4 (#540).
1798+
1799+ * Don't generate an empty H1 after hrule slide breaks.
1800+ We now use a slide-level header with contents `[Str "\0"]` to mark
1801+ an hrule break. This avoids creation of an empty H1 in these
1802+ contexts. Closes #484.
1803+
1804+ * Docbook reader: Added support for "bold" emphasis. Thanks to mb21.
1805+
1806+ * In make_osx_package.sh, ensure citeproc-hs is built with the
1807+ embed_data_files flag.
1808+
1809+ * MediaWiki writer: Avoid extra blank lines after sublists (Gavin Beatty).
1810+
1811+ * ConTeXt writer: Don't escape `&`, `^`, `<`, `>`, `_`,
1812+ simplified escapes for `}` and `{` to `\{` and `\}` (Aditya Mahajan).
1813+
1814+ * Fixed handling of absolute URLs in CSS imports with `--self-contained`.
1815+ Closes #535.
1816+
1817+ * Added webm to mime types. Closes #543.
1818+
1819+ * Added some missing exports and tests to the cabal file
1820+ (Alexander V Vershilov).
1821+
1822+ * Compile with `-rtsopts` and `-threaded` by default.
1823+
1824+pandoc (1.9.4.1)
1825+
1826+ * Markdown reader: Added `cf.` and `cp.` to list of likely abbreviations.
1827+
1828+ * LaTeX template: Added `linkcolor`, `urlcolor` and `links-as-notes`
1829+ variables. Make TOC links black.
1830+
1831+ * LaTeX template improvements.
1832+
1833+ + Don't print date unless one is given explicitly in the document.
1834+ + Simplified templates.
1835+ + Use fontenc [T1] by default, and lmodern.
1836+ + Use microtype if available.
1837+
1838+ * Biblio:
1839+
1840+ + Add comma to beginning of bare suffix, e.g. `@item1 [50]`.
1841+ Motivation: `@item1 [50]` should be as close as possible to
1842+ `[@item1, 50]`.
1843+ + Added workaround for a bug in citeproc-hs 0.3.4 that causes footnotes
1844+ beginning with a citation to be empty. Closes #531.
1845+
1846+ * Fixed documentation on mixed lists. Closes #533.
1847+
1848+pandoc (1.9.4)
1849+
1850+ * Simplified `Text.Pandoc.Biblio` and fixed bugs with citations inside
1851+ footnotes and captions. We now handle note citations by inserting
1852+ footnotes during initial citation processing, and doing a separate
1853+ pass later to remove notes inside notes.
1854+
1855+ * Added 'zenburn' highlight style from highlighting-kate.
1856+
1857+ * Added Slideous writer. Slideous is an HTML + javascript slide show
1858+ format, similar to Slidy, but works with IE 7. (Jonas Smedegaard)
1859+
1860+ * LaTeX writer:
1861+
1862+ + Ensure we don't have extra blank lines at ends of cells.
1863+ This can cause LaTeX errors, as they are interpreted as new paragraphs.
1864+ + More consistent interblock spacing.
1865+ + Require highlighting-kate >= 0.5.1, for proper highlighted inline
1866+ code in LaTeX. Closes #527.
1867+ + Ensure that a Verbatim at the end of a footnote is followed by
1868+ a newline. (Fixes a regression in the previous version.)
1869+ + In default template, use black for internal links and TOC.
1870+ Added commented-out code to use footnotes for links, as would
1871+ be suitable in print output.
1872+
1873+ * Beamer writer: When `--incremental` is used, lists inside
1874+ a block quote should appear all at once. (This makes Beamer
1875+ output consistent with the HTML slide show formats.)
1876+
1877+ * ConTeXt writer:
1878+
1879+ + Escape `%` as `\letterpercent{}` not `\letterpercent `,
1880+ to avoid gobbling spaces after the `%` sign.
1881+ + Ensure space after `\stopformula`.
1882+
1883+ * Markdown writer:
1884+
1885+ + Use `:` form instead of `~` in definition lists, for better
1886+ compatibility with other markdown implementations.
1887+ + Don't wrap the term, because it breaks definition lists.
1888+ + Use a nonzero space to prevent false recognition
1889+ of list marker in ordered lists. Closes #516.
1890+
1891+ * Org writer: Add space before language name. Closes #523.
1892+
1893+ * Docx writer: Simplified bullet characters so they work properly
1894+ with Word 2007. Closes #520.
1895+
1896+ * LaTeX reader: Support `\centerline`.
1897+
1898+ * RST reader: handle figures. Closes #522.
1899+
1900+ * Textile reader: fix for `<notextile>` and `==`. Closes #517.
1901+ (Paul Rivier)
1902+
1903+pandoc (1.9.3)
1904+
1905+ * Fixed bug in `fromEntities`. The previous version would turn
1906+ `hi & low you know;` into `hi &`.
1907+
1908+ * HTML reader:
1909+
1910+ + Don't skip nonbreaking spaces.
1911+ Previously a paragraph containing just ` ` would be rendered
1912+ as an empty paragraph. Thanks to Paul Vorbach for pointing out the bug.
1913+ + Support `<col>` and `<caption>` in tables. Closes #486.
1914+
1915+ * Markdown reader:
1916+
1917+ + Don't recognize references inside delimited code blocks.
1918+ + Allow list items to begin with lists.
1919+
1920+ * Added basic docbook reader (John MacFarlane and Mauro Bieg).
1921+
1922+ * LaTeX reader:
1923+
1924+ + Handle `\bgroup`, `\egroup`, `\begingroup`, `\endgroup`.
1925+ + Control sequences can't be followed by a letter.
1926+ This fixes a bug where `\begingroup` was parsed as `\begin`
1927+ followed by `group`.
1928+ + Parse 'dimension' arguments to unknown commands. e.g. `\parindent0pt`
1929+ + Make `\label` and `\ref` sensitive to `--parse-raw`.
1930+ If `--parse-raw` is selected, these will be parsed as raw latex
1931+ inlines, rather than bracketed text.
1932+ + Don't crash on unknown block commands (like `\vspace{10pt}`)
1933+ inside `\author`; just skip them. Closes #505.
1934+
1935+ * Textile reader:
1936+
1937+ + Implemented literal escapes with `==` and `<notextile>`. Closes #473.
1938+ + Added support for LaTeX blocks and inlines (Paul Rivier).
1939+ + Better conformance to RedCloth inline parsing (Paul Rivier).
1940+ + Parse '+text+' as emphasized (should be underlined, but this
1941+ is better than leaving literal plus characters in the output.
1942+
1943+ * Docx writer: Fixed multi-paragraph list items. Previously they each
1944+ got a list marker. Closes #457.
1945+
1946+ * LaTeX writer:
1947+
1948+ + Added `--no-tex-ligatures` option to avoid replacing
1949+ quotation marks and dashes with TeX ligatures.
1950+ + Use `fixltx2e` package to provide '\textsubscript'.
1951+ + Improve spacing around LaTeX block environments:
1952+ quote, verbatim, itemize, description, enumerate.
1953+ Closes #502.
1954+ + Use blue instead of pink for URL links in latex/pdf output.
1955+
1956+ * ConTeXt writer: Fixed escaping of `%`.
1957+ In text, `%` needs to be escaped as `\letterpercent`, not `\%`
1958+ Inside URLs, `%` needs to be escaped as `\%`
1959+ Thanks to jmarca and adityam for the fix. Closes #492.
1960+
1961+ * Texinfo writer: Escape special characters in node titles.
1962+ This fixes a problem pointed out by Joost Kremers. Pandoc used
1963+ to escape an '@' in a chapter title, but not in the corresponding
1964+ node title, leading to invalid texinfo.
1965+
1966+ * Fixed document encoding in texinfo template.
1967+ Resolves Debian Bug #667816.
1968+
1969+ * Markdown writer:
1970+
1971+ + Don't force delimited code blocks to be flush left.
1972+ Fixes bug with delimited code blocks inside lists etc.
1973+ + Escape `<` and `$`.
1974+
1975+ * LaTeX writer: Use `\hyperref[ident]{text}` for internal links.
1976+ Previously we used `\href{\#ident}{text}`, which didn't work on
1977+ all systems. Thanks to Dirk Laurie.
1978+
1979+ * RST writer: Don't wrap link references. Closes #487.
1980+
1981+ * Updated to use latest versions of blaze-html, mtl.
1982+
1983+
1984+pandoc (1.9.2)
1985+
1986+ * LaTeX reader:
1987+
1988+ + Made `lstlisting` work as a proper verbatim environment.
1989+ + Fixed bug parsing LaTeX tables with one column.
1990+
1991+ * LaTeX writer:
1992+
1993+ + Use `{}` around `ctable` caption, so that formatting can be used.
1994+ + Don't require eurosym package unless document has a €.
1995+
1996+ * LaTeX template: Added variables for `geometry`, `romanfont`,
1997+ `sansfont`, `mathfont`, `mainfont` so users can more easily
1998+ customize fonts.
1999+
2000+ * PDF writer:
2001+
2002+ + Run latex engine at least two times, to ensure
2003+ that PDFs will have hyperlinked bookmarks.
2004+ + Added PDF metadata (title,author) in LaTeX standalone + PDF output.
2005+
2006+ * Texinfo writer: retain directories in image paths. (Peter Wang)
2007+
2008+ * RST writer: Better handling of inline formatting, in accord
2009+ with docutils' "inline markup recognition rules" (though we don't
2010+ implement the unicode rules fully). Now `hi*there*hi` gets
2011+ rendered properly as `hi\ *there*\ hi`, and unnecessary
2012+ `\ ` are avoided around `:math:`, `:sub:`, `:sup:`.
2013+
2014+ * RST reader:
2015+
2016+ + Parse `\ ` as null, not escaped space.
2017+ + Allow `` :math:`...` `` even when not followed by blank
2018+ or `\`. This does not implement the complex rule docutils follows,
2019+ but it should be good enough for most purposes.
2020+ + Add support for the rST default-role directive. (Greg Maslov)
2021+
2022+ * Text.Pandoc.Parsing: Added `stateRstDefaultRole` field to `ParserState`.
2023+ (Greg Maslov)
2024+
2025+ * Markdown reader: Properly handle citations nested in other inline
2026+ elements.
2027+
2028+ * Markdown writer: don't replace empty alt in image with "image".
2029+
2030+ * DZSlides: Updated template.html and styles in default template.
2031+ Removed bizarre CSS for `q` in dzslides template.
2032+
2033+ * Avoid repeated `id` attribute in section and header in HTML slides.
2034+
2035+ * README improvements: new instructions on internal links,
2036+ removed misleading note on reST math.
2037+
2038+ * Build system:
2039+
2040+ + Fixed Windows installer so that dzslides works.
2041+ + Removed stripansi.sh.
2042+ + Added .travis.yml for Travis continuous integration support..
2043+ + Fixed upper bound for zlib (Sergei Trofimovich).
2044+ + Fixed upper bound for test-framework.
2045+ + Updated haddocks for haddock-2.10 (Sergei Trofimovich).
2046+
2047+pandoc (1.9.1.2)
2048+
2049+ * Added `beamer+lhs` as output format.
2050+
2051+ * Don't escape `<` in `<style>` tags with `--self-contained`.
2052+ This fixes a bug which prevented highlighting from working
2053+ when using `--self-contained`.
2054+
2055+ * PDF: run latex engine three times if `--toc` specified.
2056+ This fixes page numbers in the table of contents.
2057+
2058+ * Docx writer: Added TableNormal style to tables.
2059+
2060+ * LaTeX math environment fixes. `aligned` is now used instead of
2061+ the nonexistent `aligned*`. `multline` instead of the nonexistent
2062+ `multiline`.
2063+
2064+ * LaTeX writer: Use `\textasciitilde` for literal `~`.
2065+
2066+ * HTML writer: Don't escape contents of EQ tags with --gladtex.
2067+ This fixes a regression from 1.8.
2068+
2069+ * Use `<q>` tags for Quoted items for HTML5 output.
2070+ The quote style can be changed by modifying the template
2071+ or including a css file. A default quote style is included.
2072+
2073+ * LaTeX reader: Fixed accents (\~{a}, `\c{c}`).
2074+ Correctly handle \^{}. Support "minted" as a LaTeX verbatim block.
2075+
2076+ * Updated LaTeX template for better language support.
2077+ Use `polyglossia` instead of `babel` with xetex.
2078+ Set `lang` as documentclass option.
2079+ `\setmainlanguage` will use the last of a comma-separated
2080+ list of languages. Thanks to François Gannaz.
2081+
2082+ * Fixed default LaTeX template so `\euro` and `€` work. The
2083+ `eurosym` package is needed if you are using pdflatex.
2084+
2085+ * Fixed escaping of period in man writer (thanks to Michael Thompson).
2086+
2087+ * Fixed list label positions in beamer.
2088+
2089+ * Set `mainlang` variable in context writer.
2090+ This parallels behavior of latex writer. `mainlang` is the last
2091+ of a comma-separated list of languages in lang.
2092+
2093+ * EPUB language metadat: convert e.g. `en_US` from locale to `en-US`.
2094+
2095+ * Changed `-V` so that you can specify a key without a value.
2096+ Such keys get the value `true`.
2097+
2098+ * Fixed permissions on installed man pages - thanks Magnus Therning.
2099+
2100+ * Windows installer: require XP or higher. The installer is
2101+ now compiled on a Windows 7 machine, which fixes a problem
2102+ using citation functions on Windows 7.
2103+
2104+ * OSX package: Check for 64-bit Intel CPU before installing.
2105+
2106+pandoc (1.9.1.1)
2107+
2108+ * Better handling of raw latex environments in markdown. Now
2109+
2110+ \begin{equation}
2111+ a_1
2112+ \end{equation}
2113+
2114+ turns into a raw latex block as expected.
2115+
2116+ * Improvements to LaTeX reader:
2117+
2118+ + Skip options after block commands.
2119+ + Correctly handle `{\\}` in braced.
2120+ + Added a needed 'try'.
2121+ + Citations: add `, ` to suffix if it doesn't start with space or
2122+ punctuation. Otherwise we get no space between the year and the
2123+ suffix in author-date styles.
2124+
2125+ * Added two needed data files for S5. This fixes a problem with
2126+ `pandoc -t s5 --self-contained`. Also removed `slides.min.js`,
2127+ which was no longer being used.
2128+
2129+ * Fixed some minor problems in `reference.docx`:
2130+ name on "Date" style, `xCs` instead of `xIs`.
2131+
2132+ * Fixed a problem creating docx files using a reference docx
2133+ modified using Word. The problem seems to be that Word
2134+ modifies `_rels/.rels`, changing the Type of the Relationship to
2135+ `docProps/core.xml`. Pandoc now changes this back to the correct
2136+ value if it has been altered, fixing the problem.
2137+
2138+ * Fixed html5 template so it works properly with highlighting.
2139+
2140+pandoc (1.9.1)
2141+
2142+ * LaTeX reader:
2143+
2144+ + Fixed regression in 1.9; properly handle escaped $ in latex math.
2145+ + Put LaTeX verse environments in blockquotes.
2146+
2147+ * Markdown reader:
2148+
2149+ + Limit nesting of strong/emph. This avoids exponential lookahead
2150+ in parasitic cases, like `a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**`.
2151+ + Improved attributes syntax (inn code blocks/spans):
2152+ (1) Attributes can contain line breaks. (2) Values in key-value
2153+ attributes can be surrounded by either double or single quotes, or
2154+ left unquoted if they contain no spaces.
2155+
2156+ * Don't wrap headers in markdown or RST writers.
2157+
2158+ * Added `stateMaxNestingLevel` to `ParserState`.
2159+ We set this to 6, so you can still have `Emph` inside `Emph`,
2160+ just not indefinitely.
2161+
2162+ * More efficient implementation of `nowrap` in `Text.Pandoc.Pretty`.
2163+
2164+ * `Text.Pandoc.PDF`: Only run latex twice if `\tableofcontents`
2165+ is present.
2166+
2167+ * Require highlighting-kate >= 0.5.0.2, texmath >= 0.6.0.2.
2168+
2169+pandoc (1.9.0.5)
2170+
2171+ * Changed cabal file so that build-depends for the test program
2172+ are not required unless the tests flag is used.
2173+
2174+ * LaTeX writer: insert `{}` between adjacent hyphens so they don't
2175+ form ligatures (dashes) in code spans.
2176+
2177+pandoc (1.9.0.4)
2178+
2179+ * Raised version bound on test-framework to avoid problems
2180+ compiling tests on GHC 7.4.1.
2181+
2182+ * LaTeX reader: Use raw LaTeX as fallback inline text for Cites,
2183+ so citations don't just disappear unless you process with
2184+ citeproc. Ignore `\bibliographystyle`, `\nocite`.
2185+
2186+ * Simplified tex2pdf; it will always run latex twice to
2187+ resolve table of contents and hyperrefs.
2188+
2189+pandoc (1.9.0.3)
2190+
2191+ * Require Cabal >= 1.10.
2192+ * Tweaked cabal file to meet Cabal 1.10 requirements.
2193+
2194+pandoc (1.9.0.2)
2195+
2196+ * Allow build with json 0.4 or 0.5. Otherwise we can't build with
2197+ ghc 6.12.
2198+
2199+pandoc (1.9)
2200+
2201+ [new features]
2202+
2203+ * Added a Microsoft Word `docx` writer. The writer includes support
2204+ for highlighted code and for math (which is converted from TeX to OMML,
2205+ Office's native math markup language, using texmath's new OMML module).
2206+ A new option `--reference-docx` allows the user to customize the
2207+ styles.
2208+
2209+ * Added an `asciidoc` writer (<http://www.methods.co.nz/asciidoc/>).
2210+
2211+ * Better support for slide shows:
2212+
2213+ + Added a `dzslides` writer. DZSlides is a lightweight HTML5/javascript
2214+ slide show format due to Paul Rouget (<http://paulrouget.com/dzslides/>).
2215+
2216+ + Added a LaTeX `beamer` writer. Beamer is a LaTeX package for creating
2217+ slide presentations.
2218+
2219+ + New, flexible rules for dividing documents into sections and slides
2220+ (see the "Structuring the slide show" in the User's Guide). These
2221+ are backward-compatible with the old rules, but they allow slide
2222+ shows to be organized into sections and subsections containing
2223+ multiple slides.
2224+
2225+ + A new `--slide-level` option allows users to override defaults
2226+ and select a slide level below the first header level with content.
2227+
2228+ * A new `--self-contained` option produces HTML output that does not
2229+ depend on an internet connection or the presence of any external
2230+ files. Linked images, CSS, and javascript is downloaded (or fetched
2231+ locally) and encoded in `data:` URIs. This is useful for making portable
2232+ `HTML slide shows. The --offline` option has been deprecated and is now
2233+ `treated as a synonym or --self-contained`.
2234+
2235+ * Support for PDF output:
2236+
2237+ + Removed the old `markdown2pdf`.
2238+ + `pandoc` can now create PDFs (assuming you have latex and a set of
2239+ appropriate packages installed): just specify an output file with the
2240+ `.pdf` extension.
2241+ + A new option `--latex-engine` allows you to specify `pdflatex`,
2242+ `xelatex`, or `lualatex` as the processor.
2243+
2244+ * Highlighting changes:
2245+
2246+ + Syntax highlighting is now a standard feature; the `highlighting`
2247+ flag is no longer needed when compiling.
2248+ + A new `--no-highlight` option allows highlighting to be disabled.
2249+ + Highlighting now works in `docx`, `latex`, and `epub`, as well as
2250+ `html`, `html5`, `dzslides`, `s5`, and `slidy`.
2251+ + A new `--highlight-style` option selects between various highlighting
2252+ color themes.
2253+
2254+ * Internal links to sections now work in ConTeXt and LaTeX as well as HTML.
2255+
2256+ * LaTeX `\include` and `\usepackage` commands are now processed,
2257+ provided the files are in the working directory.
2258+
2259+ * EPUB improvements:
2260+
2261+ + Internal and external links now work in EPUB.
2262+ + Raw HTML is allowed.
2263+ + New `--epub-embed-font` option.
2264+ + Customizable templates for EPUB pages offer more control over
2265+ formatting: `epub-page.html`, `epub-coverimage.html`,
2266+ `epub-titlepage.html`.
2267+
2268+ * `--mathml` now works with DocBook.
2269+
2270+ * Added support for math in RST reader and writer. Inline math uses the
2271+ `` :math:`...` `` construct. Display math uses
2272+
2273+ .. math:: ...
2274+
2275+ or if the math is multiline,
2276+
2277+ .. math::
2278+
2279+ ...
2280+
2281+ These constructions are now supported now by `rst2latex.py`.
2282+
2283+ * Github syntax for fenced code blocks is supported in pandoc's
2284+ markdown. You can now write
2285+
2286+ ```ruby
2287+ x = 2
2288+ ```
2289+
2290+ instead of
2291+
2292+ ~~~ {.ruby}
2293+ x = 2
2294+ ~~~~
2295+
2296+ * Easier scripting: a new `toJsonFilter` function makes it easier to
2297+ write Haskell scripts to manipulate the Pandoc AST.
2298+
2299+ [behavior changes]
2300+
2301+ * Fixed parsing of consecutive lists in markdown.
2302+ Pandoc previously behaved like Markdown.pl for consecutive
2303+ lists of different styles. Thus, the following would be parsed
2304+ as a single ordered list, rather than an ordered list followed
2305+ by an unordered list:
2306+
2307+ 1. one
2308+ 2. two
2309+
2310+ - one
2311+ - two
2312+
2313+ This change makes pandoc behave more sensibly, parsing this as
2314+ two lists. Any change in list type (ordered/unordered) or in
2315+ list number style will trigger a new list. Thus, the following
2316+ will also be parsed as two lists:
2317+
2318+ 1. one
2319+ 2. two
2320+
2321+ a. one
2322+ b. two
2323+
2324+ Since we regard this as a bug in Markdown.pl, and not something
2325+ anyone would ever rely on, we do not preserve the old behavior
2326+ even when `--strict` is selected.
2327+
2328+ * Dashes work differently with `--smart`: `---` is always em-dash,
2329+ and `--` is always en-dash. Pandoc no longer tries to guess when
2330+ `-` should be en-dash. *Note:* This may change how existing documents
2331+ look when processed with pandoc. A new option, `--old-dashes`,
2332+ is provided for legacy documents.
2333+
2334+ * The markdown writer now uses setext headers for levels 1-2.
2335+ The old behavior (ATX headers for all levels) can be restored
2336+ using the new `--atx-headers` option.
2337+
2338+ * Links are now allowed in markdown image captions. They are also
2339+ allowed in links, but will appear there as regular text. So,
2340+
2341+ [link with [link](/url)](/url)
2342+
2343+ will turn into
2344+
2345+ <p><a href="/url">link with link</a></p>
2346+
2347+ * Improved handling of citations using `citeproc-hs-0.3.4`.
2348+ Added `--citation-abbreviations` option.
2349+
2350+ * Citation keys can no longer end with a punctuation character.
2351+ This means that `@item1.` will be parsed as a citation with key
2352+ 'item1', followed by a period, instead of a citation with key
2353+ 'item1.', as was the case previously.
2354+
2355+ * In HTML output, citations are now put in a span with class `citation`.
2356+
2357+ * The markdown reader now recognizes DocBook block and inline tags.
2358+ It was always possible to include raw DocBook tags in a markdown
2359+ document, but now pandoc will be able to distinguish block from
2360+ inline tags and behave accordingly. Thus, for example,
2361+
2362+ <sidebar>
2363+ hello
2364+ </sidebar>
2365+
2366+ will not be wrapped in `<para>` tags.
2367+
2368+ * The LaTeX parser has been completely rewritten; it is now much more
2369+ accurate, robust, and extensible. However, there are two important
2370+ changes in how it treats unknown LaTeX. (1) Previously, unknown
2371+ environments became BlockQuote elements; now, they are treated
2372+ as "transparent", so `\begin{unknown}xyz\end{unknown}` is the
2373+ same as `xyz`. (2) Previously, arguments of unknown commands
2374+ were passed through with their braces; now the braces are stripped
2375+ off.
2376+
2377+ * `--smart` is no longer selected automatically with `man` output.
2378+
2379+ * The deprecated `--xetex` option has been removed.
2380+
2381+ * The `--html5`/`-5` option has been deprecated. Use `-t html5`
2382+ instead. `html5` and `html5+lhs` are now separate output formats.
2383+
2384+ * Single quotes are no longer escaped in HTML output. They do not
2385+ need to be escaped outside of attributes.
2386+
2387+ * Pandoc will no longer transform leading newlines in code
2388+ blocks to `<br/>` tags.
2389+
2390+ * The ODT writer now sizes images appropriately, using the image
2391+ size and DPI information embedded in the image.
2392+
2393+ * `--standalone` is once again implicitly for a non-text output format
2394+ (ODT, EPUB). You can again do `pandoc test.txt -o test.odt`
2395+ and get a standalone ODT file.
2396+
2397+ * The Docbook writer now uses `<sect1>`, `<sect2>`, etc. instead of
2398+ `<section>`.
2399+
2400+ * The HTML writer now uses `<del>` for strikeout.
2401+
2402+ * In HTML output with `--section-divs`, the classes `section` and
2403+ `level[1,2,..6]` are put on the `div` tags so they can be styled.
2404+ In HTML 5 output with `--section-divs`, the classes
2405+ `level[1,2,...6]` are put on `section` tags.
2406+
2407+ * EPUB writer changes:
2408+
2409+ + The `lang` variable now sets the language
2410+ in the metadata (if it is not set, we default to the locale).
2411+ + EPUB: UTF-8 is used rather than decimal entities.
2412+
2413+ * Added `titleslide` class to title slide in S5 template.
2414+
2415+ * In HTML, EPUB, and docx metadata, the date is normalized into
2416+ YYYY-MM-DD format if possible. (This is required for validation.)
2417+
2418+ * Attributes in highlighted code blocks are now preserved in HTML.
2419+ The container element will have the classes, id, and key-value attributes
2420+ you specified in the delimited code block. Previously these were stripped
2421+ off.
2422+
2423+ * The reference backlink in the HTML writer no longer has a special
2424+ `footnoteBacklink` class.
2425+
2426+ * The HTML template has been split into `html` and `html5` templates.
2427+
2428+ * Author and date are treated more consistently in HTML templates.
2429+ Authors are now `<h2>`, date `<h3>`.
2430+
2431+ * URLs are hyphenated in the ConTeXt writer (B. Scott Michel).
2432+
2433+ * In `Text.Pandoc.Builder`, `+++` has been replaced by `<>`.
2434+
2435+ [bug fixes]
2436+
2437+ * Better support for combining characters and East Asian wide characters
2438+ in markdown and reST.
2439+
2440+ * Better handling of single quotes with `--smart`.
2441+ Previously `D'oh l'*aide*` would be parsed with left and right single
2442+ quotes instead of apostrophes. This kind of error is now fixed.
2443+
2444+ * Highlighting: Use `reads` instead of `read` for better error handling.
2445+ Fixes crash on `startNum="abc"`.
2446+
2447+ * Added blank comment after directives in rst template.
2448+
2449+ * Unescape entities in citation `refId`. The `refId`s coming
2450+ from citeproc contain XML numeric entities, and these don't match with the
2451+ citation keys parsed by pandoc. Solution is to unescape them.
2452+
2453+ * HTML reader: Fixed bug parsing tables with both thead and tbody.
2454+
2455+ * Markdown reader:
2456+
2457+ + Better handling of escapes in link URLs and titles.
2458+ + Fixed backslash escapes in reference links.
2459+ + Fixed bug in table/hrule parsing, by checking that the top
2460+ line of a table is not followed by a blank line. This bug caused
2461+ slowdowns on some files with hrules and tables, as pandoc tried to
2462+ interpret the hrules as the tops of multiline tables.
2463+ + Fixed bug in code block attribute parser. Previously the ID attribute
2464+ got lost if it didn't come first. Now attributes can come in any order.
2465+
2466+ * RST reader: allow footnotes followed by newline without space characters.
2467+
2468+ * LaTeX reader:
2469+
2470+ + Ignore empty groups {}, { }.
2471+ + LaTeX reader: Handle \@.
2472+ + LaTeX reader: Don't crash on commands like `\itemsep`.
2473+ + LaTeX reader: Better handling of letter environments.
2474+
2475+ * RST writer: Fixed bug involving empty table cells. isSimple was being
2476+ calculated in a way that assumed there were no non-empty cells.
2477+
2478+ * ConTeXt writer:
2479+
2480+ + Made `--toc` work even without `--number-sections`.
2481+ + Escape # in link URLs.
2482+ + Use buffering for footnotes containing code blocks.
2483+ + Changed 'descr' to 'description', fixed alignment.
2484+
2485+ * LaTeX writer:
2486+
2487+ + Escape euro character.
2488+ + Don't escape ~ inside href{...}.
2489+ + Escape # in href URLs.
2490+ + Improved detection of book classes. We now check the
2491+ `documentclass` variable, and if that is not set, we look through
2492+ the template itself. Also, we have added the KOMA classes scrreprt
2493+ and scrbook. You can now make a book using
2494+ `pandoc -V documentclass:book mybook.txt -o mybook.pdf`
2495+ + LHS files now set the "listings" variable, so that the definition
2496+ of the `code` environment will be included in the template.
2497+ + Links are colored blue by default (this can be changed by
2498+ modifying `hyperref` settings in the template).
2499+ + Added `lang` variable to LaTeX template.
2500+
2501+ * HTML writer:
2502+
2503+ + Fixed bug in HTML template with html5 and mathml.
2504+ + Don't use self-closing img, br, hr tags for HTML5.
2505+ + Use `<section>` for footnotes if HTML5.
2506+ + Update HTML templates to use Content-Style-Type meta tag.
2507+ + Use separate variables for meta-date, meta-author.
2508+ This makes footnotes work in author and date fields.
2509+ + Use 'vertical-align:middle' in WebTeX math for better alignment.
2510+
2511+ * S5/slidy writer: Make footnotes appear on separate slide at end.
2512+
2513+ * MIME: Added 'layout-cache' to getMimeType. This ensures that the
2514+ META-INF/manifest.xml for ODT files will have everything it needs, so
2515+ that ODT files modified by LibreOffice can be used as `--reference-odt`.
2516+
2517+ * `Text.Pandoc.Templates`: Return empty string for json template.
2518+
2519+ * `Text.Pandoc.Biblio`:
2520+
2521+ + Expand citations recursively inside nested inlines.
2522+ + Treat `\160` as space when parsing locator and suffix.
2523+ This fixes a bug with "p. 33" when `--smart` is used. Previously
2524+ the whole "p. 33" would be included in the suffix, with no locator.
2525+ + Put whole author-in-text citation in a Cite. Previously just the
2526+ date and other info went in the Cite.
2527+ + Don't add comma+space to prefix if it ends in punctuation.
2528+
2529+ * Updated chicago-author-date.csl. The old version did not work
2530+ properly for edited volumes with no author.
2531+
2532+ * EPUB writer:
2533+
2534+ + Add date to EPUB titlepage and metadata.
2535+ + Added TOC identifier in EPUB page template.
2536+ + Don't generate superfluous file `cover-image.jpg`.
2537+
2538+ [under the hood improvements]
2539+
2540+ * Modified `make_osx_package.sh` to use cabal-dev.
2541+ Items are no longer installed as root.
2542+ Man pages are zipped and given proper permissions.
2543+
2544+ * Modified windows installer generater to use cabal-dev.
2545+
2546+ * Setup: Making man pages now works with cabal-dev (at least on OSX). In
2547+ Setup.hs we now invoke 'runghc' in a way that points it to the correct
2548+ package databases, instead of always falling back to the default user
2549+ package db.
2550+
2551+ * Updated to work with GHC 7.4.1.
2552+
2553+ * Removed dependency on old-time.
2554+
2555+ * Removed dependency on dlist.
2556+
2557+ * New slidy directory for "self-contained."
2558+
2559+ * TeXMath writer: Use unicode thin spaces for thin spaces.
2560+
2561+ * Markdown citations: don't strip off initial space in locator.
2562+
2563+ [API changes]
2564+
2565+ * Removed `Apostrophe`, `EmDash`, `EnDash`, and `Ellipses`
2566+ from the native `Inline` type in pandoc-types. Now we use `Str`
2567+ elements with unicode.
2568+
2569+ * Improvements to `Text.Pandoc.Builder`:
2570+
2571+ + `Inlines` and `Blocks` are now newtypes (not synonyms for
2572+ sequences).
2573+ + Instances are defined for `IsString`, `Show`, `Read`, `Monoid`,
2574+ and a new `Listable` class, which allows these to be manipulated
2575+ to some extent like lists. Monoid append includes automatic
2576+ normalization.
2577+ + `+++` has been replaced by `<>` (mappend).
2578+
2579+ * Use blaze-html instead of xhtml for HTML generation.
2580+ This changes the type of `writeHtml`.
2581+
2582+ * `Text.Pandoc.Shared`:
2583+
2584+ + Added `warn` and `err`.
2585+ + Removed `unescapeURI`, modified `escapeURI`.
2586+ (See under [behavior changes], above.)
2587+
2588+ * Changes in URI escaping: Previously the readers escaped URIs by
2589+ converting unicode characters to octets and then percent encoding.
2590+ Now unicode characters are left as they are, and `escapeURI` only
2591+ percent-encodes space characters. This gives more readable
2592+ URIs, and works well with modern user agents. URIs are no longer unescaped
2593+ at all on conversion to `markdown`, `asciidoc`, `rst`, `org`.
2594+
2595+ * New module `Text.Pandoc.SelfContained`.
2596+
2597+ * New module `Text.Pandoc.Docx`.
2598+
2599+ * New module `Text.Pandoc.PDF`.
2600+
2601+ * Added `writerBeamer` to `WriterOptions`.
2602+
2603+ * Added `normalizeDate` to `Text.Pandoc.Shared`.
2604+
2605+ * Added `splitStringWithIndices` in `Text.Pandoc.Shared`.
2606+ This is like `splitWithIndices`, but it is sensitive to distinctions
2607+ between wide, combining, and regular characters.
2608+
2609+ * `Text.Pandoc.Pretty`:
2610+
2611+ + Added `chomp` combinator.
2612+ + Added `beforeNonBreak` combinator. This allows you to include
2613+ something conditionally on it being before a nonblank.
2614+ Used for RST inline math.
2615+ + Added `charWidth` function. All characters marked W or F in the unicode
2616+ spec EastAsianWidth.txt get width 2.
2617+ + Added `realLength`, based on `charWidth`. `realLength` is now
2618+ used in calculating offsets.
2619+
2620+ * New module `Text.Pandoc.Slides`, for common functions for breaking
2621+ a document into slides.
2622+
2623+ * Removed `Text.Pandoc.S5`, which is no longer needed.
2624+
2625+ * Removed `Text.Pandoc.CharacterReferences`. Moved
2626+ `characterReference` to `Text.Pandoc.Parsing`.
2627+ `decodeCharacterReferences` is replaced by `fromEntities`
2628+ in `Text.Pandoc.XML`.
2629+
2630+ * Added `Text.Pandoc.ImageSize`. This is intened for use
2631+ in `docx` and `odt` writers, so the size and dpi of images
2632+ can be calculated.
2633+
2634+ * Removed `writerAscii` in `WriterOptions`.
2635+
2636+ * Added `writerHighlight` to `WriterOptions`.
2637+
2638+ * Added `DZSlides` to `HTMLSlideVariant`.
2639+
2640+ * `writeEPUB` has a new argument for font files to embed.
2641+
2642+ * Added `stateLastStrPos` to `ParserState`. This lets us keep track
2643+ of whether we're parsing the position immediately after a regular
2644+ (non-space, non-symbol) string, which is useful for distinguishing
2645+ apostrophes from single quote starts.
2646+
2647+ * `Text.Pandoc.Parsing`:
2648+
2649+ + `escaped` now returns a `Char`.
2650+ + Removed `charsInBalanced'`, added a character parser as
2651+ a parameter of `charsInBalanced`. This is needed for
2652+ proper handling of escapes, etc.
2653+ + Added `withRaw`.
2654+
2655+ * Added `toEntities` to `Text.Pandoc.XML`.
2656+
2657+ * `Text.Pandoc.Readers.LaTeX`:
2658+
2659+ + Export `handleIncludes`.
2660+ + Export `rawLaTeXBlock` instead of `rawLaTeXEnvironment'`.
2661+
2662+ * Added `ToJsonFilter` class and `toJsonFilter` function to
2663+ `Text.Pandoc`, deprecating the old `jsonFilter` function.
2664+
2665+ * `Text.Pandoc.Highlighting`:
2666+
2667+ + Removed `highlightHtml`, `defaultHighlightingCss`.
2668+ + Export `formatLaTeXInline`, `formatLaTeXBlock`, and `highlight`, plus
2669+ key functions from highlighting-kate.
2670+ + Changed types of highlighting function. `highlight` returns a
2671+ `Maybe`, not an `Either`.
2672+
2673+pandoc (1.8.2.1)
2674+
2675+ * Relaxed cabal consntraints for test-framework (S. Trofimovich).
2676+
2677+ * Relaxed cabal constraints for pandoc-types.
2678+
2679+ * Adjusted Arbitrary instance to help avoid timeouts in tests.
2680+
2681+ * Added `Tests.Writers.Markdown` to cabal file.
2682+
2683+pandoc (1.8.2)
2684+
2685+ * Added script to produce OS X package.
2686+
2687+ * Made `templates` directory a git submodule. This should make it
2688+ easier for people to revise their custom templates when the default
2689+ templates change.
2690+
2691+ * Changed template naming scheme: `FORMAT.template` -> `default.FORMAT`.
2692+ **Note:** If you have existing templates in `~/.pandoc/templates`, you
2693+ must rename them to conform to the new scheme!
2694+
2695+ * Fixed smart quotes bug, now handling `'...hi'` properly.
2696+
2697+ * RST reader:
2698+
2699+ + Partial support for labeled footnotes.
2700+ + Improved accuracy of `simpleReferenceName` parser.
2701+
2702+ * HTML reader:
2703+
2704+ + Substitute correct unicode characters for
2705+ characters in the 128..159 range, which are often found even in
2706+ HTML that purports to be UTF-8.
2707+
2708+ * LaTeX reader: Handle `\subtitle` command (a subtitle is added
2709+ to the title, after a colon and linebreak). Closes #280.
2710+
2711+ * Leaner `reference.odt`.
2712+
2713+ * Added unexported module `Text.Pandoc.MIME` for use in
2714+ the ODT writer.
2715+
2716+ * ODT writer: Construct `manifest.xml` based on archive contents.
2717+ This fixes a bug in ODTs containing images. Recent versions of
2718+ LibreOffice would reject these as corrupt, because `manifest.xml`
2719+ did not contain a reference to the image files.
2720+
2721+ * LaTeX writer:
2722+
2723+ + Make verbatim environments flush to avoid spurious
2724+ blank lines. Closes #277.
2725+ + Use `\texttt` and escapes insntead of `\verb!...!`, which
2726+ is too fragile (doesn't work in command arguments).
2727+ + Use `\enquote{}` for quotes if the template includes
2728+ the `csquotes` package. This provides better support for
2729+ local quoting styles. (Thanks to Andreas Wagner for the idea.)
2730+
2731+ * ConTeXt writer: Make `\starttyping`/`\stoptyping` flush with
2732+ margin, preventing spurious blank lines.
2733+
2734+ * Slidy writer:
2735+
2736+ + Use non-minimized version of `slidy.css` with `--offline`
2737+ option, so users can more easily edit it.
2738+ + Also fixed a bug in the CSS that prevented proper centering
2739+ of title (now reported and fixed upstream).
2740+
2741+ * S5 writer:
2742+
2743+ + Replaced `s5/default/slides.js.{comment,packed}` with
2744+ new compressed `s5/default/slides.min.js`.
2745+ + Use `data:` protocol to embed S5 CSS in `<link>` tags,
2746+ when `--offline` is specified. Using inline CSS didn't
2747+ work with Chrome or Safari. This fixes offline
2748+ S5 on those browsers.
2749+
2750+ * HTML writer: Removed English title on footnote backlinks.
2751+ This is incongrous in non-English documents.
2752+
2753+ * Docbook writer:
2754+
2755+ + Use CALS tables. (Some older docbook software does not work
2756+ well with XHTML tables.) Closes #77.
2757+ + Use `programlisting` tags (instead of `screen`) for code blocks.
2758+
2759+ * `markdown2pdf`:
2760+
2761+ + Calls latex with `-halt-on-error -interaction nonstopmode` instead
2762+ of `-interaction=batchmode`, which essentially just ignored errors,
2763+ leading to bad results. Better to know when something is wrong.
2764+ + Fixed issues with non-UTF-8 output of `pdflatex`.
2765+ + Better error reporting.
2766+
2767+ * `--mathjax` now takes an optional URL argument. If it is not
2768+ provided, pandoc links directly to the (secure) mathjax CDN,
2769+ as now recommended (thanks to dsanson).
2770+
2771+ * Deprecated `--xetex` option in `pandoc`. It is no longer needed,
2772+ since the LaTeX writer now produces a file that can be processed by
2773+ `latex`, `pdflatex`, `lualatex`, or `xelatex`.
2774+
2775+ * Introduced `--luatex` option to `markdown2pdf`. This causes `lualatex`
2776+ to be used to create the PDF.
2777+
2778+ * If a template specified with `--template` is not found, look for it
2779+ in `datadir`. Also, if no extension is provided, supply one based
2780+ on the writer. So now you can put your `special.latex` template in
2781+ `~/.pandoc/templates`, and use it from any directory via
2782+ `pandoc -t latex --template special`.
2783+
2784+ * Default template improvements:
2785+
2786+ + HTML: Display author and date after title.
2787+ + HTML: Made table of contents more customizable. The container
2788+ for the TOC is now in the template, so users can insert a header
2789+ or other styling. (Thanks to Bruce D'Arcus for the suggestion.)
2790+ + HTML, Slidy, S5: Enclose scripts in CDATA tags.
2791+ + Slidy, S5: Added `s5-url` and `slidy-url` variables, instead of
2792+ hard-coding. If you want to put your slidy files in the slidy
2793+ subdirectory, for example, you can do
2794+ `pandoc -t slidy -V slidy-url=slidy -s`.
2795+ + LaTeX: Use `\and` to separate authors in LaTeX documents (reader
2796+ & writer). Closes #279.
2797+ + LaTeX: Use different `hyperref` options for `xetex`, fixing
2798+ problems with unicode bookmarks (thanks to CircleCode).
2799+ + LaTeX: Removed `ucs` package, use `utf8` rather than `utf8x`
2800+ with `inputenc`. This covers fewer characters but is more
2801+ robust with other packages, and `ucs` is unmaintained. Users
2802+ who need better unicode support should use xelatex or lualatex.
2803+
2804+pandoc (1.8.1.2)
2805+
2806+ * Added `--epub-cover-image` option.
2807+
2808+ * Documented `--biblatex` and `--natbib` options.
2809+
2810+ * Allow `--section-divs` with slidy output. Resolves Issue #296.
2811+
2812+ * Disallow notes within notes in reST and markdown.
2813+ These previously caused infinite looping and stack overflows.
2814+ For example:
2815+
2816+ [^1]
2817+
2818+ [^1]: See [^1]
2819+
2820+ Note references are allowed in reST notes, so this isn't a full
2821+ implementation of reST. That can come later. For now we need to
2822+ prevent the stack overflows. Partially resolves Issue #297.
2823+
2824+ * EPUB writer: Allow non-plain math methods.
2825+
2826+ * Forbid ()s in citation item keys. Resolves Issue #304: problems with
2827+ `(@item1; @item2)` because the final paren was being parsed as part of
2828+ the item key.
2829+
2830+ * Changed URI parser so it doesn't include trailing punctuation.
2831+ So, in RST, `http://google.com.` should be parsed as a link followed by a
2832+ period. The parser is smart enough to recognize balanced parentheses, as
2833+ often occur in wikipedia links: `http://foo.bar/baz_(bam)`.
2834+
2835+ * Markdown+lhs reader: Require space after inverse bird tracks, so that
2836+ HTML tags can be used freely at the left margin of a markdown+lhs document.
2837+ Thanks to Conal Elliot for the suggestion.
2838+
2839+ * Markdown reader:
2840+
2841+ + Improved emph/strong parsing; fixes bug found by Perry Wagle.
2842+ + Fixed bug in footnote order (reported by CircleCode).
2843+
2844+ * RST reader:
2845+ + Fixed bug in in field lists with multi-line items at the
2846+ end of the list.
2847+ + Added parentheses to RST `specialChars`, so
2848+ `(http://google.com)` will be parsed as a link in parens.
2849+ Resolves Issue #291.
2850+ + Allow `|` followed by newline in RST line block.
2851+
2852+ * LaTeX reader:
2853+ + Support `\dots`.
2854+ + Gobble option & space after linebreak `\\[10pt]`.
2855+
2856+ * Textile reader:
2857+ + Make it possible to have colons after links. (qerub)
2858+ + Make it possible to have colons after links. (Christoffer Sawicki)
2859+
2860+ * HTML reader:
2861+ + Skip spaces after `<b>`, `<emph>`, etc.
2862+ + Handle tbody, thead in simple tables. Closes #274.
2863+ + Implicit `Para`s instead of `Plains` in some contexts.
2864+
2865+ * OpenDocument writer: Use special `First paragraph` style for
2866+ first paragraph after most non-paragraph blocks. This allows users to
2867+ specify e.g. that only paragraphs after the first paragraph of a block are
2868+ to be indented. Thanks to Andrea Rossato for the patch. Closes #20.
2869+
2870+ * LaTeX writer: use `deVerb` on table and picture captions.
2871+ Otherwise LaTeX complains about `\verb` inside command argument.
2872+ Thanks to bbanier for reporting the bug.
2873+
2874+ * Markdown writer: Insert HTML comment btw list and indented code block.
2875+ This prevents the code block from being interpreted as part of the list.
2876+
2877+ * EPUB writer: Add a meta element specify the cover.
2878+ Some EPUB e-readers, such as the Nook, require a meta element inside the
2879+ OPF metadata block to ensure the cover image is properly displayed.
2880+ (Kelsey Hightower)
2881+
2882+ * HTML writer: Use embed tag for images with non-image extensions.
2883+ (e.g. PDFs). Closes #264.
2884+
2885+ * LaTeX writer: Improved tables.
2886+
2887+ + More space between lines, top-align cells.
2888+ + Use ctable package, which allows footnotes and
2889+ provides additional options.
2890+ + Made cell alignments work in multiline tables.
2891+ + Closes #271, #272.
2892+
2893+ * Un-URI-escape image filenames in LaTeX, ConTeXt, RTF, Texinfo.
2894+ Also do this when copying image files into EPUBs and ODTs.
2895+ Closes #263.
2896+
2897+ * Changed to github issue tracker.
2898+
2899+ * Added failing emph/strong markdown test case due to Perry Wagle.
2900+
2901+ * Slidy improvements:
2902+ + Updated to use Slidy2.
2903+ + Fixed bug, unclosed div tag.
2904+ + Added `duration` variable in template.
2905+ Setting this activates the timer.
2906+ + Use 'titlepage' instead of 'cover' for title div.
2907+
2908+pandoc (1.8.1.1)
2909+
2910+ * `markdown2pdf`: Removed some debugging lines accidentally included
2911+ in the 1.8.1 release. With those lines, the temp directory is created
2912+ in the working directory, and it is not deleted. This fix restores
2913+ the original behavior.
2914+
2915+pandoc (1.8.1)
2916+
2917+ * Added `--ascii` option. Currently supported only in HTML writer,
2918+ which it causes to use numerical entities instead of UTF-8.
2919+
2920+ * EPUB writer: `--toc` now works to provide a table of contents
2921+ at the beginning of each chapter.
2922+
2923+ * LaTeX writer: Change figure defaults to `htbp`.
2924+ This prevents "too many unprocessed floats." Resolves
2925+ Issue #285.
2926+
2927+ * `Text.Pandoc.UTF8`: Encode filenames even when using recent
2928+ base.
2929+
2930+ * `markdown2pdf`: Fixed filename encoding issues. With help from Paulo
2931+ Tanimoto. Resolves Issue #286.
2932+
2933+ * HTML writer: Put line breaks in section divs.
2934+
2935+ * `Text.Pandoc.Shared`: Make `writerSectionDivs` default to False.
2936+
2937+pandoc (1.8.0.3)
2938+
2939+ * Fixed Source-repository stanza in cabal file.
2940+
2941+pandoc (1.8.0.2)
2942+
2943+ * HTML writer:
2944+
2945+ + Stringify alt text instead of converting to HTML.
2946+ + Break lines after block elements, not inside tags.
2947+ HTML output now closely resembles that of tidy. Resolves Issue #134.
2948+
2949+ * Markdown reader: Fixed bug in footnote block parser (pointed out
2950+ by Jesse Rosenthal). The problem arose when the blank line
2951+ at the end of a footnote block contained indenting spaces.
2952+
2953+ * Shared: Improved 'normalize' function so it normalizes Spaces too.
2954+ In normal form, Space elements only occur to separate two non-Space
2955+ elements. So, we never have [Space], or [, ..., Space].
2956+
2957+ * Tests:
2958+
2959+ + Improved Arbitrary instance.
2960+ + Added timeout for test instances.
2961+
2962+ * README:
2963+
2964+ + Added section on four-space rule for lists. Resolves Issue #283.
2965+ + Clarified optional arguments on math options.
2966+
2967+ * markdown2pdf: Fixed bug with output file extensions.
2968+ Previously `markdown2pdf test.txt -o test.en.pdf` would produce
2969+ `test.pdf`, not `test.en.pdf`. Thanks to Paolo Tanimoto for the fix.
2970+
2971+pandoc (1.8.0.1)
2972+
2973+ * Revised Interact.hs so that it works with the CPP macros
2974+ in the UTF8 module.
2975+
2976+ * Revised Setup.hs so that we don't call MakeManPage.hs unless
2977+ the man pages are out of date.
2978+
2979+pandoc (1.8)
2980+
2981+ [new features]
2982+
2983+ * Support for citations using Andrea Rossato's `citeproc-hs` 0.3.
2984+ You can now write, for example,
2985+
2986+ Water is wet [see @doe99, pp. 33-35; also @smith04, ch. 1].
2987+
2988+ and, when you process your document using `pandoc`, specifying
2989+ a citation style using `--csl` and a bibliography using `--bibliography`,
2990+ the citation will be replaced by an appropriately formatted
2991+ citation, and a list of works cited will be added to the end
2992+ of the document.
2993+
2994+ This means that you can switch effortlessly between different citation
2995+ and bibliography styles, including footnote, numerical, and author-date
2996+ formats. The bibliography can be in any of the following formats: MODS,
2997+ BibTeX, BibLaTeX, RIS, EndNote, EndNote XML, ISI, MEDLINE, Copac, or JSON.
2998+ See the README for further details.
2999+
3000+ Citations are supported in the markdown reader, using a special
3001+ syntax, and in the LaTeX reader, using natbib or biblatex syntax.
3002+ (Thanks to Nathan Gass for the natbib and biblatex support.)
3003+
3004+ * New `textile` reader and writer. Thanks to Paul Rivier for contributing
3005+ the `textile` reader, an almost complete implementation of the textile
3006+ syntax used by the ruby [RedCloth library](http://redcloth.org/textile).
3007+ Resolves Issue #51.
3008+
3009+ * New `org` writer, for Emacs Org-mode, contributed by Puneeth Chaganti.
3010+
3011+ * New `json` reader and writer, for reading and writing a JSON
3012+ representation of the native Pandoc AST. These are much faster
3013+ than the `native` reader and writer, and should be used for
3014+ serializing Pandoc to text. To convert between the JSON representation
3015+ and native Pandoc, use `encodeJSON` and `decodeJSON` from
3016+ `Text.JSON.Generic`.
3017+
3018+ * A new `jsonFilter` function in `Text.Pandoc` makes it easy
3019+ to write scripts that transform a JSON-encoded pandoc document.
3020+ For example:
3021+
3022+ -- removelinks.hs - removes links from document
3023+ import Text.Pandoc
3024+ main = interact $ jsonFilter $ bottomUp removeLink
3025+ where removeLink (Link xs _) = Emph xs
3026+ removeLink x = x
3027+
3028+ To use this to remove links while translating markdown to LaTeX:
3029+
3030+ pandoc -t json | runghc removelinks.hs | pandoc -f json -t latex
3031+
3032+ * Attributes are now allowed in inline `Code` elements, for example:
3033+
3034+ In this code, `ulist ! [theclass "special"] << elts`{.haskell} is...
3035+
3036+ The attribute syntax is the same as for delimited code blocks.
3037+ `Code` inline has an extra argument place for attributes, just like
3038+ `CodeBlock`. Inline code will be highlighted in HTML output, if pandoc
3039+ is compiled with highlighting support. Resolves Issue #119.
3040+
3041+ * New `RawBlock` and `RawInline` elements (replacing `RawHtml`,
3042+ `HtmlInline`, and `TeX`) provide lots of flexibility in writing
3043+ scripts to transform Pandoc documents. Scripts can now change
3044+ how each element is rendered in each output format.
3045+
3046+ * You can now define LaTeX macros in markdown documents, and pandoc
3047+ will apply them to TeX math. For example,
3048+
3049+ \newcommand{\plus}[2]{#1 + #2}
3050+ $\plus{3}{4}$
3051+
3052+ yields `3+4`. Since the macros are applied in the reader, they
3053+ will work in every output format, not just LaTeX.
3054+
3055+ * LaTeX macros can also be used in LaTeX documents (both in math
3056+ and in non-math contexts).
3057+
3058+ * A new `--mathjax` option has been added for displaying
3059+ math in HTML using MathJax. Resolves issue #259.
3060+
3061+ * Footnotes are now supported in the RST reader. (Note, however,
3062+ that unlike docutils, pandoc ignores the numeral or symbol used in
3063+ the note; footnotes are put in an auto-numbered ordered list.)
3064+ Resolves Issue #258.
3065+
3066+ * A new `--normalize` option causes pandoc to normalize the AST
3067+ before writing the document. This means that, for example,
3068+ `*hi**there*` will be rendered as `<em>hithere</em>`
3069+ instead of `<em>hi</em><em>there</em>`. This is not the default,
3070+ because there is a significant performance penalty.
3071+
3072+ * A new `--chapters` command-line option causes headers
3073+ in DocBook, LaTeX, and ConTeXt to start with "chapter" (level one).
3074+ Resolves Issue #265.
3075+
3076+ * In DocBook output, `<chapter>` is now used for top-level
3077+ headers if the template contains `<book>`. Resolves Issue #265.
3078+
3079+ * A new `--listings` option in `pandoc` and `markdown2pdf` causes
3080+ the LaTeX writer to use the listings package for code blocks.
3081+ (Thanks to Josef Svennigsson for the pandoc patch, and Etienne
3082+ Millon for the markdown2pdf patch.)
3083+
3084+ * `markdown2pdf` now supports `--data-dir`.
3085+
3086+ * URLs in autolinks now have class "url" so they can be styled.
3087+
3088+ * Improved prettyprinting in most formats. Lines will be wrapped
3089+ more evenly and duplicate blank lines avoided.
3090+
3091+ * New `--columns` command-line option sets the column width for
3092+ line wrapping and relative width calculations for tables.
3093+
3094+ * Made `--smart` work in HTML, RST, and Textile readers, as well
3095+ as markdown.
3096+
3097+ * Added `--html5` option for HTML5 output.
3098+
3099+ * Added support for listings package in LaTeX reader
3100+ (Puneeth Chaganti).
3101+
3102+ * Added support for simple tables in the LaTeX reader.
3103+
3104+ * Added support for simple tables in the HTML reader.
3105+
3106+ * Significant performance improvements in many readers and writers.
3107+
3108+ [API and program changes]
3109+
3110+ * Moved `Text.Pandoc.Definition` from the `pandoc` package to a new
3111+ auxiliary package, `pandoc-types`. This will make it possible for other
3112+ programs to supply output in Pandoc format, without depending on the whole
3113+ pandoc package.
3114+
3115+ * Added `Attr` field to `Code`.
3116+
3117+ * Removed `RawHtml`, `HtmlInline`, and `TeX` elements; added generic
3118+ `RawBlock` and `RawInline`.
3119+
3120+ * Moved generic functions to `Text.Pandoc.Generic`. Deprecated
3121+ `processWith`, replacing it with two functions, `bottomUp` and `topDown`.
3122+ Removed previously deprecated functions `processPandoc` and `queryPandoc`.
3123+
3124+ * Added `Text.Pandoc.Builder`, for building `Pandoc` structures.
3125+
3126+ * `Text.Pandoc` now exports association lists `readers` and `writers`.
3127+
3128+ * Added `Text.Pandoc.Readers.Native`, which exports `readNative`.
3129+ `readNative` can now read full pandoc documents, block lists, blocks,
3130+ inline lists, or inlines. It will interpret `Str "hi"`
3131+ as if it were `Pandoc (Meta [] [] []) [Plain [Str "hi"]]`.
3132+ This should make testing easier.
3133+
3134+ * Removed deprecated `-C/--custom-header` option.
3135+ Use `--template` instead.
3136+
3137+ * `--biblio-file` has been replaced by `--bibliography`.
3138+ `--biblio-format` has been removed; pandoc now guesses the format
3139+ from the file extension (see README).
3140+
3141+ * pandoc will treat an argument as a URI only if it has an
3142+ `http(s)` scheme. Previously pandoc would treat some
3143+ Windows pathnames beginning with `C:/` as URIs.
3144+
3145+ * The `--sanitize-html` option and the `stateSanitize` field in
3146+ `ParserState` have been removed. Sanitization is better done in the
3147+ resulting HTML using `xss-sanitize`, which is based on pandoc's
3148+ sanitization, but improved.
3149+
3150+ * pandoc now adds a newline to the end of its output in fragment
3151+ mode (= not `--standalone`).
3152+
3153+ * Added support for `lang` in `html` tag in the HTML template,
3154+ so you can do `pandoc -s -V lang=es`, for example.
3155+
3156+ * `highlightHtml` in `Text.Pandoc.Highlighting` now takes
3157+ a boolean argument that selects between "inline" and
3158+ "block" HTML.
3159+
3160+ * `Text.Pandoc.Writers.RTF` now exports `rtfEmbedImage`.
3161+ Images are embedded in RTF output when possible (png, jpeg).
3162+ Resolves Issue #275.
3163+
3164+ * Added `Text.Pandoc.Pretty`. This is better suited for pandoc than the
3165+ `pretty` package. Changed all writers that used
3166+ `Text.PrettyPrint.HughesPJ` to use `Text.Pandoc.Pretty` instead.
3167+
3168+ * Rewrote `writeNative` using the new prettyprinting module. It is
3169+ now much faster. The output has been made more consistent and compressed.
3170+ `writeNative` is also now sensitive to writerStandalone`, and will simply
3171+ `print a block list if writerStandalone` is False.
3172+
3173+ * Removed `Text.Pandoc.Blocks`. `Text.Pandoc.Pretty` allows you to define
3174+ blocks and concatenate them, so a separate module is no longer needed.
3175+
3176+ * `Text.Pandoc.Shared`:
3177+
3178+ + Added `writerColumns`, `writerChapters`, and `writerHtml5` to
3179+ `WriterOptions`.
3180+ + Added `normalize`.
3181+ + Removed unneeded prettyprinting functions:
3182+ `wrapped`, `wrapIfNeeded`, `wrappedTeX`, `wrapTeXIfNeeded`, `hang'`,
3183+ `BlockWrapper`, `wrappedBlocksToDoc`.
3184+ + Made `splitBy` take a test instead of an element.
3185+ + Added `findDataFile`, refactored `readDataFile`.
3186+ + Added `stringify`. Rewrote `inlineListToIdentifier` using `stringify`.
3187+ + Fixed `inlineListToIdentifier` to treat '\160' as ' '.
3188+
3189+ * `Text.Pandoc.Readers.HTML`:
3190+
3191+ + Removed `rawHtmlBlock`, `anyHtmlBlockTag`, `anyHtmlInlineTag`,
3192+ `anyHtmlTag`, `anyHtmlEndTag`, `htmlEndTag`, `extractTagType`,
3193+ `htmlBlockElement`, `htmlComment`
3194+ + Added `htmlTag`, `htmlInBalanced`, `isInlineTag`, `isBlockTag`,
3195+ `isTextTag`
3196+
3197+ * Moved `smartPunctuation` from `Text.Pandoc.Readers.Markdown`
3198+ to `Text.Pandoc.Readers.Parsing`, and parameterized it with
3199+ an inline parser.
3200+
3201+ * Added `nonspaceChar` to `Text.Pandoc.Parsing`.
3202+
3203+ * Ellipses are no longer allowed to contain spaces.
3204+ Previously we allowed '. . .', ' . . . ', etc. This caused
3205+ too many complications, and removed author's flexibility in
3206+ combining ellipses with spaces and periods.
3207+
3208+ * Allow linebreaks in URLs (treat as spaces). Also, a string of
3209+ consecutive spaces or tabs is now parsed as a single space. If you have
3210+ multiple spaces in your URL, use `%20%20`.
3211+
3212+ * `Text.Pandoc.Parsing`:
3213+
3214+ + Removed `refsMatch`.
3215+ + Hid `Key` constructor.
3216+ + Removed custom `Ord` and `Eq` instances for `Key`.
3217+ + Added `toKey` and `fromKey` to convert between `Key` and `[Inline]`.
3218+ + Generalized type on `readWith`.
3219+
3220+ * Small change in calculation of relative widths of table columns.
3221+ If the size of the header > the specified column width, use
3222+ the header size as 100% for purposes of calculating
3223+ relative widths of columns.
3224+
3225+ * Markdown writer now uses some pandoc-specific features when `--strict`
3226+ is not specified: `\` newline is used for a hard linebreak instead of
3227+ two spaces then a newline. And delimited code blocks are used when
3228+ there are attributes.
3229+
3230+ * HTML writer: improved gladTeX output by setting ENV appropriately
3231+ for display or inline math (Jonathan Daugherty).
3232+
3233+ * LaTeX writer: Use `\paragraph`, `\subparagraph` for level 4,5 headers.
3234+
3235+ * LaTeX reader:
3236+
3237+ + `\label{foo}` and `\ref{foo}` now become `{foo}` instead of `(foo)`.
3238+ + `\index{}` commands are skipped.
3239+
3240+ * Added `fontsize` variable to default LaTeX template.
3241+ This makes it easy to set the font size using `markdown2pdf`:
3242+ `markdown2pdf -V fontsize=12pt input.txt`.
3243+
3244+ * Fixed problem with strikeout in LaTeX headers when using
3245+ hyperref, by adding a command to the default LaTeX template
3246+ that disables `\sout` inside pdf strings. Thanks to Joost Kremers
3247+ for the fix.
3248+
3249+ * The `COLUMNS` environment variable no longer has any effect.
3250+
3251+ [under-the-hood improvements]
3252+
3253+ * Pandoc now compiles with GHC 7. (This alone leads to a
3254+ significant performance improvement, 15-20%.)
3255+
3256+ * Completely rewrote HTML reader using tagsoup as a lexer. The
3257+ new reader is faster and more accurate. Unlike the
3258+ old reader, it does not get bogged down on some input
3259+ (Issues #277, 255). And it handles namespaces in tags
3260+ (Issue #274).
3261+
3262+ * Replaced `escapeStringAsXML` with a faster version.
3263+
3264+ * Rewrote `spaceChar` and some other parsers in Text.Pandoc.Parsing
3265+ for a significant performance boost.
3266+
3267+ * Improved performance of all readers by rewriting parsers.
3268+
3269+ * Simplified Text.Pandoc.CharacterReferences by using
3270+ entity lookup functions from TagSoup.
3271+
3272+ * `Text.Pandoc.UTF8` now uses the unicode-aware IO functions
3273+ from `System.IO` if base >= 4.2. This gives support for
3274+ windows line endings on windows.
3275+
3276+ * Remove duplications in documentation by generating the
3277+ pandoc man page from README, using `MakeManPage.hs`.
3278+
3279+ * README now includes a full description of markdown syntax,
3280+ including non-pandoc-specific parts. A new `pandoc_markdown`
3281+ man page is extracted from this, so you can look up markdown
3282+ syntax by doing `man pandoc_markdown`.
3283+
3284+ * Completely revised test framework (with help from Nathan Gass).
3285+ The new test framework is built when the `tests` Cabal flag is set. It
3286+ includes the old integration tests, but also some new unit and quickcheck
3287+ tests. Test output has been much improved, and you can now specify a glob
3288+ pattern after `cabal test` to indicate which tests should be run;
3289+ for example `cabal test citations` will run all the citation tests.
3290+
3291+ * Added a shell script, `stripansi.sh`, for filtering ANSI control
3292+ sequences from test output: `cabal test | ./stripansi.sh > test.log`.
3293+
3294+ * Added `Interact.hs` to make it easier to use ghci while developing.
3295+ `Interact.hs` loads `ghci` from the `src` directory, specifying
3296+ all the options needed to load pandoc modules (including
3297+ specific package dependencies, which it gets by parsing
3298+ dist/setup-config).
3299+
3300+ * Added `Benchmark.hs`, testing all readers + writers using criterion.
3301+
3302+ * Added `stats.sh`, to make it easier to collect and archive
3303+ benchmark and lines-of-code stats.
3304+
3305+ * Added upper bounds to all cabal dependencies.
3306+
3307+ * Include man pages in extra-source-files. This allows users to
3308+ install pandoc from the tarball without needing to build the man
3309+ pages.
3310+
3311+ [bug fixes]
3312+
3313+ * Filenames are encoded as UTF8. Resolves Issue #252.
3314+
3315+ * Handle curly quotes better in `--smart` mode. Previously, curly quotes
3316+ were just parsed literally, leading to problems in some output formats.
3317+ Now they are parsed as `Quoted` inlines, if `--smart` is specified.
3318+ Resolves Issue #270.
3319+
3320+ * Text.Pandoc.Parsing: Fixed bug in grid table parser.
3321+ Spaces at end of line were not being stripped properly,
3322+ resulting in unintended LineBreaks.
3323+
3324+ * Markdown reader:
3325+
3326+ + Allow HTML comments as inline elements in markdown.
3327+ So, `aaa <!-- comment --> bbb` can be a single paragraph.
3328+ + Fixed superscripts with links: `^[link](/foo)^` gets
3329+ recognized as a superscripted link, not an inline note followed by
3330+ garbage.
3331+ + Fixed regression, making markdown reference keys case-insensitive again.
3332+ Resolves Issue #272.
3333+ + Properly handle abbreviations (like `Mr.`) at the end of a line.
3334+ + Better handling of intraword underscores, avoiding exponential
3335+ slowdowns in some cases. Resolves Issue #182.
3336+ + Fixed bug in alignments in tables with blank rows in the header.
3337+
3338+ * RST reader:
3339+
3340+ + Field lists now allow spaces in field names, and
3341+ block content in field values. (Thanks to Lachlan Musicman
3342+ for pointing out the bug.)
3343+ + Definition list items are now always `Para` instead of
3344+ `Plain`, matching behavior of `rst2xml.py`.
3345+ + In image blocks, the description is parsed properly and
3346+ used for the alt attribute, not also the title.
3347+ + Skip blank lines at beginning of file. Resolves
3348+ Debian #611328.
3349+
3350+ * LaTeX reader:
3351+
3352+ + Improved parsing of preamble.
3353+ Previously you'd get unexpected behavior on a document that
3354+ contained `\begin{document}` in, say, a verbatim block.
3355+ + Allow spaces between `\begin` or `\end` and `{`.
3356+ + Support `\L` and `\l`.
3357+ + Skip comments inside paragraphs.
3358+
3359+ * LaTeX writer:
3360+
3361+ + Escape strings in `\href{..}`.
3362+ + In nonsimple tables, put cells in `\parbox`.
3363+
3364+ * OpenDocument writer: don't print raw TeX.
3365+
3366+ * Markdown writer:
3367+
3368+ + Fixed bug in `Image`. URI was getting unescaped twice!
3369+ + Avoid printing extra blank lines at the end if there are
3370+ no notes or references.
3371+
3372+ * LaTeX and ConTeXt: Escape `[` and `]` as `{[}` and `{]}`.
3373+ This avoids unwanted interpretation as an optional argument.
3374+
3375+ * ConTeXt writer: Fixed problem with inline code. Previously
3376+ `}` would be rendered `\type{}}`. Now we check the string for '}' and '{'.
3377+ If it contains neither, use `\type{}`; otherwise use `\mono{}`
3378+ with an escaped version of the string.
3379+
3380+ * `:` now allowed in HTML tags. Resolves Issue #274.
3381+
3382+pandoc (1.6)
3383+
3384+ [ John MacFarlane ]
3385+
3386+ * New EPUB and HTML Slidy writers. (Issue #122)
3387+
3388+ - EPUB is a standard ebook format, used in Apple's iBooks for
3389+ the iPad and iPhone, Barnes and Noble's nook reader, the Sony
3390+ reader, and many other devices.
3391+ - Slidy, like S5, is a system for producing HTML+javascript slide
3392+ shows.
3393+
3394+ * All input is assumed to be UTF-8, no matter what the locale and ghc
3395+ version, and all output is UTF-8. This reverts to pre-1.5 behavior.
3396+ Also, a BOM, if present, is stripped from the input.
3397+
3398+ * Markdown now supports grid tables, whose cells can contain
3399+ arbitrary block elements. (Issue #43)
3400+
3401+ * Sequentially numbered example lists in markdown with `@` marker.
3402+
3403+ * Markdown table captions can begin with a bare colon and no longer need
3404+ to include the English word "table." Also, a caption can now occur
3405+ either before or after the table. (Issue #227)
3406+
3407+ * New command-line options:
3408+
3409+ - `--epub-stylesheet` allows you to specify a CSS file that will
3410+ be used to style your ebook.
3411+ - `--epub-metadata` allows you to specify metadata for the ebook.
3412+ - `--offline` causes the generated HTML slideshow to include all
3413+ needed scripts and stylesheets.
3414+ - `--webtex` causes TeX math to be converted to images using the
3415+ Google Charts API (unless a different URL is specified).
3416+ - `--section-divs` causes div tags to be added around each section
3417+ in an HTML document. (Issue #230, 239)
3418+
3419+ * Default behavior of S5 writer in standalone mode has changed:
3420+ previously, it would include all needed scripts and stylesheets
3421+ in the generated HTML; now, only links are included unless
3422+ the `--offline` option is used.
3423+
3424+ * Default behavior of HTML writer has changed. Between 1.2 and 1.5,
3425+ pandoc would enclose sections in div tags with identifiers on the
3426+ div tags, so that the sections can be manipulated in javascript.
3427+ This caused undesirable interactions with raw HTML div tags. So,
3428+ starting with 1.6, the default is to put the identifiers directly
3429+ on the header tags, and not to include the divs. The `--section-divs`
3430+ option selects the 1.2-1.5 behavior.
3431+
3432+ * API changes:
3433+
3434+ - `HTMLMathMethod`: Added `WebTeX`, removed `MimeTeX`.
3435+ - `WriterOptions`: Added `writerUserDataDir`, `writerSourceDirectory`,
3436+ `writerEPUBMetadata` fields. Removed `writerIncludeBefore`,
3437+ `writerIncludeAfter`.
3438+ - Added `headerShift` to `Text.Pandoc.Shared`.
3439+ - Moved parsing code and `ParserState` from `Text.Pandoc.Shared`
3440+ to a new module, `Text.Pandoc.Parsing`.
3441+ - Added `stateHasChapters` to `ParserState`.
3442+ - Added `HTMLSlideVariant`.
3443+ - Made `KeyTable` a map instead of an association list.
3444+ - Added accessors for `Meta` fields (`docTitle`, `docAuthors`,
3445+ `docDate`).
3446+ - `Pandoc`, `Meta`, `Inline`, and `Block` have been given `Ord`
3447+ instances.
3448+ - Reference keys now have a type of their own (`Key`), with its
3449+ own `Ord` instance for case-insensitive comparison.
3450+ - Added `Text.Pandoc.Writers.EPUB`.
3451+ - Added `Text.Pandoc.UUID`.
3452+ - Removed `Text.Pandoc.ODT`, added `Text.Pandoc.Writers.ODT`.
3453+ Removed `saveOpenDocumentAsODT`, added `writeODT`.
3454+ - Added `Text.Pandoc.Writers.Native` and `writeNative`.
3455+ Removed `prettyPandoc`.
3456+ - Added `Text.Pandoc.UTF8` for portable UTF8 string IO.
3457+ - Removed `Text.Pandoc.Writers.S5` and the `writeS5` function.
3458+ Moved `s5Includes` to a new module, `Text.Pandoc.S5`.
3459+ To write S5, you now use `writeHtml` with `writerSlideVariant`
3460+ set to `S5Slides` or `SlidySlides`.
3461+
3462+ * Template changes. If you use custom templates, please update them,
3463+ particularly if you use syntax highlighting with pandoc. The old HTML
3464+ templates hardcoded highlighting CSS that will no longer work with
3465+ the most recent version of highlighting-kate.
3466+
3467+ - HTML template: avoid empty meta tag if no date.
3468+ - HTML template: Use default highlighting CSS from highlighting-kate
3469+ instead of hard-coding the CSS into the template.
3470+ - HTML template: insert-before text goes before the title, and
3471+ immediately after the <body> tag, as documented. (Issue #241)
3472+ - Added slidy and s5 templates.
3473+ - Added amssymb to preamble of latex template. (github Issue 1)
3474+
3475+ * Removed excess newlines at the end of output. Note: because output
3476+ will not contain an extra newline, you may need to make adjustments
3477+ if you are inserting pandoc's output into a template.
3478+
3479+ * In S5 and slidy, horizontal rules now cause a new slide, so you
3480+ are no longer limited to one slide per section.
3481+
3482+ * Improved handling of code in man writer. Inline code is now monospace,
3483+ not bold, and code blocks now use .nf (no fill) and .IP (indented para).
3484+
3485+ * HTML reader parses `<tt>` as Code. (Issue #247)
3486+
3487+ * html+lhs output now contains bird tracks, even when compiled without
3488+ highlighting support. (Issue #242)
3489+
3490+ * Colons are now no longer allowed in autogenerated XML/HTML identifiers,
3491+ since they have a special meaning in XML.
3492+
3493+ * Code improvements in ODT writer. Remote images are now replaced with
3494+ their alt text rather than a broken link.
3495+
3496+ * LaTeX reader improvements:
3497+
3498+ - Made latex `\section`, `\chapter` parsers more forgiving of
3499+ whitespace.
3500+ - Parse `\chapter{}` in latex.
3501+ - Changed `rawLaTeXInline` to accept `\section`, `\begin`, etc.
3502+ - Use new `rawLaTeXInline'` in LaTeX reader, and export `rawLaTeXInline`
3503+ for use in markdown reader.
3504+ - Fixes bug wherein `\section{foo}` was not recognized as raw TeX
3505+ in markdown document.
3506+
3507+ * LaTeX writer: images are automatically shrunk if they would extend
3508+ beyond the page margin.
3509+
3510+ * Plain, markdown, RST writers now use unicode for smart punctuation.
3511+
3512+ * Man writer converts math to unicode when possible, as in other writers.
3513+
3514+ * `markdown2pdf` can now recognize citeproc options.
3515+
3516+ * Command-line arguments are converted to UTF-8. (Issue #234)
3517+
3518+ * `Text.Pandoc.TeXMath` has been rewritten to use texmath's parser.
3519+ This allows it to handle a wider range of formulas. Also, if a formula
3520+ cannot be converted, it is left in raw TeX; formulas are no longer
3521+ partially converted.
3522+
3523+ * Unicode curly quotes are left alone when parsing smart quotes. (Issue
3524+ #143)
3525+
3526+ * Cabal file changes:
3527+
3528+ - Removed parsec < 3 restriction.
3529+ - Added 'threaded' flag for architectures where GHC lacks a threaded
3530+ runtime.
3531+ - Use 'threaded' only for markdown2pdf; it is not needed for pandoc.
3532+ - Require highlighting-kate 0.2.7.
3533+
3534+ * Use explicit imports from `Data.Generics`. Otherwise we have a
3535+ conflict with the 'empty' symbol, introduced in syb >= 0.2. (Issue #237)
3536+
3537+ * New data files: slidy/slidy.min.js, slidy/slidy.min.css, epub.css.
3538+
3539+pandoc (1.5.1.1)
3540+
3541+ [ John MacFarlane ]
3542+
3543+ * Fixed uniqueIdent in Shared so that header identifiers work as
3544+ advertized in the README and are are valid XHTML names.
3545+
3546+pandoc (1.5.1)
3547+
3548+ [ John MacFarlane ]
3549+
3550+ * Fixed treatment of unicode characters in URIs.
3551+ + Shared now exports escapeURI and unescapeURI. These handle
3552+ UTF8 encoding and decoding as well as URI escaping/unescaping.
3553+ + Shared: uri and emailAddress now return a pair of the original
3554+ parsed text and the escaped URI (in the latter case, with
3555+ the mailto: prefix).
3556+ + HTML reader: unsanitaryURI has been modified to allow unicode
3557+ high characters in a URI.
3558+ + Readers: All link and image URIs are now escaped using
3559+ escapeURI.
3560+ + Markdown and RST writers: unescapeURI is used so that URIs
3561+ in these formats are human-readable.
3562+
3563+ * Setup.hs: Don't assume that the build directory is "dist".
3564+ Instead, get it from localBuildInfo.
3565+
3566+ * OpenDocument writer: Use a Map for stTextStyleAttr.
3567+ This avoids duplicates (and invalid xml). Resolves Issue #222.
3568+
3569+pandoc (1.5.0.1)
3570+
3571+ [ John MacFarlane ]
3572+
3573+ * HTML writer: Fixed error in math writer (with MathML option)
3574+ that caused an infinite loop for unparsable MathML.
3575+
3576+pandoc (1.5)
3577+
3578+ [ John MacFarlane ]
3579+
3580+ * Added --mathml option. When this is selected, pandoc will convert
3581+ TeX math into MathML.
3582+ + Added data/MathMLinHTML.js, which is included when no URL is
3583+ provided for --mathml. This allows MathML to be displayed (in
3584+ better browsers) as text/html.
3585+ + Removed Text.Pandoc.LaTeXMathML. The module was no longer
3586+ necessary; it was replaced by two lines in pandoc.hs.
3587+ + Replaced LaTeXMathML.js.commend and LaTeXMathML.js.packed with a
3588+ single combined file, LaTeXMathML.js.
3589+
3590+ * Added --data-dir option.
3591+ This specifies a user data directory. If not specified, will default
3592+ to ~/.pandoc on unix or Application Data\pandoc on Windows.
3593+ Files placed in the user data directory will override system default
3594+ data files.
3595+
3596+ * Added Maybe datadir parameter to readDataFile, saveOpenDocumentAsODT,
3597+ latexMathMLScript, s5HeaderIncludes, and getDefaultTemplate. If
3598+ Nothing, no user directory is searched for an override.
3599+
3600+ * Added 'plain' output format. This is similar to markdown, but
3601+ removes links, pictures, inline formatting, and most anything that
3602+ looks even vaguely markupish. The function writePlain is exported by
3603+ Text.Pandoc.Writers.Markdown, with which it shares most of its code.
3604+
3605+ * Allow multi-line titles and authors in meta block.
3606+ Titles may span multiple lines, provided continuation lines
3607+ begin with a space character. Separate authors may be put on
3608+ multiple lines, provided each line after the first begins with
3609+ a space character. Each author must fit on one line. Multiple
3610+ authors on a single line may still be separated by a semicolon.
3611+ Based on a patch by Justin Bogner.
3612+
3613+ * When given an absolute URI as parameter, pandoc will try to fetch
3614+ the content via HTTP. So you can do:
3615+ 'pandoc -r html -w markdown http://www.fsf.org'
3616+ Adds dependency on HTTP.
3617+
3618+ * Made HTML reader much more forgiving.
3619+ + Incorporated idea (from HXT) that an element can be closed
3620+ by an open tag for another element.
3621+ + Javascript is partially parsed to make sure that a <script>
3622+ section is not closed by a </script> in a comment or string.
3623+ + More lenient non-quoted attribute values.
3624+ Now we accept anything but a space character, quote, or <>.
3625+ This helps in parsing e.g. www.google.com!
3626+ + Bare & signs are now parsed as a string. This is a common
3627+ HTML mistake.
3628+ + Skip a bare < in malformed HTML.
3629+
3630+ * Removed html2markdown and hsmarkdown.
3631+ + html2markdown is no longer needed, since you can now pass URI
3632+ arguments to pandoc and directly convert web pages. (Note,
3633+ however, that pandoc assumes the pages are UTF8. html2markdown
3634+ made an attempt to guess the encoding and convert them.)
3635+ + hsmarkdown is pointless -- a large executable that could be
3636+ replaced by 'pandoc --strict'.
3637+
3638+ * In most writers, an image in a paragraph by itself is now rendered
3639+ as a figure, with the alt text as the caption. (Texinfo, HTML, RST,
3640+ MediaWiki, Docbook, LaTeX, ConTeXt, HTML.) Other images are
3641+ rendered inline.
3642+
3643+ * Depend on extensible-exceptions. This allows pandoc to be compiled
3644+ on GHC 6.8.
3645+
3646+ * Added --base-header-level option. For example, --base-header-level=2
3647+ will change level 1 headers to level 2, level 2 to level 3, etc.
3648+ Closes Debian #563416.
3649+
3650+ * Incomplete support for RST tables (simple and grid).
3651+ Thanks to Eric Kow. Colspans and rowspans not yet supported.
3652+
3653+ * Added accessors (docTitle, docAuthors, docDate) to Meta type.
3654+
3655+ * MediaWiki writer: format links with relative URLs as wikilinks.
3656+ The new rule: If the link target is an absolute URL, an external
3657+ link is created. Otherwise, a wikilink is created.
3658+
3659+ * Text.Pandoc.Shared: Export uniqueIdent, and don't allow tilde in
3660+ identifier. Note: This may break links to sections that involve
3661+ tildes.
3662+
3663+ * Markdown(+lhs) reader: handle "inverse bird tracks."
3664+ Inverse bird tracks (<) are used for haskell example code that is not
3665+ part of the literate Haskell program. Resolves Issue #211.
3666+
3667+ * LaTeX reader:
3668+ + Recognize '\ ' (interword space).
3669+ + Recognize nonbreaking space '~'.
3670+ + Ignore \section, \pdfannot, \pdfstringdef. Ignore alt title in
3671+ section headers. Don't treat \section as inline LaTeX.
3672+ Resolves Issue #202.
3673+ + LaTeX reader: allow any special character to be escaped.
3674+ Resolves Issue #221.
3675+ + LaTeX reader: treat \paragraph and \subparagraph as level 4, 5
3676+ headers. Resolves Issue #207.
3677+
3678+ * Use template variables for include-before/after.
3679+ + These options now imply -s; previously they worked also in fragment
3680+ mode.
3681+ + Users can now adjust position of include-before and include-after
3682+ text in the templates.
3683+ + Default position of include-before moved back (as it was before 1.4)
3684+ before table of contents.
3685+ + Resolves Issue #217.
3686+
3687+ * Don't print an empty table header: (all writers).
3688+ Resolves Issue #210.
3689+
3690+ * HTML, Docbook writer: Use tbody, thead, and cols in tables.
3691+
3692+ * HTML writer: Don't include TOC div if table of contents is empty.
3693+
3694+ * Markdown writer: Fixed citations.
3695+ Previously the markdown writer printed raw citation codes, e.g.
3696+ [geach1970], rather than the expanded citations provided by
3697+ citeproc, e.g. (Geach 1970). Now it prints the expanded citations.
3698+ This means that the document produced can be processed as a markdown
3699+ document without citeproc. Thanks to dsanson for reporting, and
3700+ Andrea Rossato for the patch.
3701+
3702+ * Improved and simplified title block in context template.
3703+ Previously it caused an error if there was no title.
3704+ This method should also be easier for users to customize.
3705+
3706+ * Markdown reader:
3707+ + Treat p., pp., sec., ch., as abbreviations in smart mode.
3708+ + Disallow blank lines in inline code span.
3709+ + Allow footnotes to be indented < 4 spaces.
3710+ This fixes a regression. A test case has been added.
3711+ + Escape spaces in URLs as %20. Previously they were incorrectly
3712+ escaped as +, which is appropriate only for the query part of
3713+ a URL. Resolves Issue #220.
3714+ + Require two spaces after capital letter + period for list item.
3715+ Otherwise "E. coli" starts a list. This might change the semantics
3716+ of some existing documents, since previously the two-space
3717+ requirement was only enforced when the second word started
3718+ with a capital letter. But it is consistent with the existing
3719+ documentation and follows the principle of least surprise.
3720+ Resolves Issue #212.
3721+
3722+ * LaTeX template: redefine labelwidth when using enumerate package.
3723+ Otherwise the list labels (numbers) often extend past the left
3724+ margin, which looks bad.
3725+
3726+ * Mediawiki writer: Don't print a "== Notes ==" header before
3727+ references. This is too English-centric. Writers can provide their
3728+ own header at the end of the document.
3729+
3730+ * Promoted mediawiki headers. '= head =' is now level 1, '== head =='
3731+ level 2, etc. This seems to be correct; it's only by convention
3732+ that wikipedia articles have level 2 headers at most.
3733+ Patch due to Eric Kow.
3734+
3735+ * RunTests.hs: Set LANG to a UTF-8 locale. Use 'pandoc --data-dir=' so
3736+ data files don't need to have been installed. This removes the need to
3737+ set HOME.
3738+
3739+ * HTML reader:
3740+ + Handle spaces before <html>. Resolves Issue #216.
3741+ + Be forgiving in parsing a bare list within a list.
3742+ The following is not valid xhtml, but the intent is clear:
3743+ <ol>
3744+ <li>one</li>
3745+ <ol><li>sub</li></ol>
3746+ <li>two</li>
3747+ </ol>
3748+ We'll treat the <ol> as if it's in a <li>. Resolves Issue #215.
3749+
3750+ * Updated INSTALL instructions. cabal method is now promoted.
3751+
3752+ * Updated markdown2pdf man page. It no longer says all pandoc options
3753+ are accepted.
3754+
3755+ * README/man pages: Removed advice to pipe through tidy before HTML
3756+ reader. This is obsolete, now that we have a forgiving HTML parser.
3757+
3758+ * LaTeX writer: set numbersections template variable, so
3759+ the section numbering options work again.
3760+
3761+ * Removed obsolete Makefile.
3762+
3763+ * Website: renamed index.txt.in -> index.txt.
3764+
3765+ * New batch file to make-windows-installer.
3766+ + Removed old Makefile.windows
3767+ + Added make-windows-installer.bat
3768+ + Modified default installer name in pandoc-setup.iss
3769+
3770+ * Removed freebsd and macports directories.
3771+ They are no longer up to date.
3772+
3773+ * Setup.hs:
3774+ + Made man page building sensitive to build verbosity.
3775+ + Improved detection of highlighting support in test hook.
3776+ + Install wrapper scripts into cabal bin directory.
3777+ + Also simplified installManpages.
3778+ + Setup.hs: install manpages to mandir. Code borrowed from darcs.
3779+
3780+ * Changed default of writerXeTeX to False.
3781+
3782+ * HTML writer: don't include empty UL if --toc but no sections.
3783+ Resolves Issue #199.
3784+
3785+ * LaTeX writer:
3786+
3787+ + If book, report, or memoir documentclass, use \chapter{}
3788+ for first-level headers. Otherwise use \section{}.
3789+ + Removed stLink, link template variable. Reason: we now always
3790+ include hyperref in the template.
3791+
3792+ * LaTeX template:
3793+
3794+ + Only show \author if there are some.
3795+ + Always include hyperref package. It is used not just for links but
3796+ for toc, section heading bookmarks, footnotes, etc. Also added
3797+ unicode=true on hyperref options.
3798+
3799+ * markdown2pdf: always do at least two runs. hyperref bookmarks
3800+ require this.
3801+
3802+ * cabal file: Removed unneeded dependency on template-haskell.
3803+
3804+ * Windows installer - fixed bug in data file locations.
3805+ Resolves Issue #197.
3806+
3807+ * Deprecated --custom-header in documentation.
3808+ Removed old "Custom Headers" section in README.
3809+
3810+pandoc (1.4)
3811+
3812+ [ John MacFarlane ]
3813+
3814+ * Pandoc will now compile with either GHC 6.10 or 6.12.
3815+ + Don't use System.IO.UTF8 when compiling with 6.12
3816+ + Use -fno-warn-unused-do-bind option when compiling with 6.12
3817+
3818+ * Replaced old headers with templates. Now users have much more
3819+ control over the way documents appear in --standalone mode,
3820+ and writer code is simplified. Resolves Issues #59, 147.
3821+ Every effort has been made to retain backwards compatibilty.
3822+ So, the --custom-header option should still work as before.
3823+
3824+ + Added Text.Pandoc.Templates. This provides functions for
3825+ retrieving default templates and for rendering templates.
3826+ + System templates (in the pandoc data directory) can be
3827+ overridden by user templates in $HOME/.pandoc/templates.
3828+ + Removed Text.Pandoc.DefaultHeaders.
3829+ + Removed data/headers directory.
3830+ + Added templates directory.
3831+ + Added writerTemplate and writerVariables fields to WriterOptions.
3832+ + Removed writerTitlePrefix, writerHeader fields from WriterOptions.
3833+ + Changed --print-default-header to --print-default-template.
3834+ + Added --template option.
3835+ + Added -V/--variable option to set custom template variables.
3836+
3837+ * Pandoc no longer requires Template Haskell. Resolves Issue #186.
3838+
3839+ + Removed need for TH in ODT module. Instead get reference.odt from
3840+ data file at run time.
3841+ + Removed TH dependency from S5 module. S5 module now exports
3842+ s5HeaderIncludes, which pandoc.hs includes if writer is s5 and
3843+ standalone.
3844+ + Refactored LaTeXMathML not to use TH.
3845+
3846+ * Meta is now Meta [Inline] [[Inline]] [Inline] rather than
3847+ Meta [Inline] [String] String. Authors and date in Meta are now lists
3848+ of Inline elements rather than raw strings. This means that they can
3849+ be formatted and can include footnotes. NOTE: This may be a breaking
3850+ change for those using pandoc as a library.
3851+
3852+ * Added readDataFile to Text.Pandoc.Shared. This retrieves
3853+ a data file from the user pandoc data directory (~/.pandoc
3854+ on unix), or, if not found there, from the system data
3855+ directory ($CABALDIR/shared/pandoc-VERSION/). All data
3856+ files, including templates, LaTeXMathML.js, s5 styles,
3857+ and reference.odt, can be overridden by the user.
3858+
3859+ * s5 files moved from data/ui/default to s5/default.
3860+
3861+ * Use unicode instead of entities in HTML and XML output. Resolves
3862+ Issue #163.
3863+
3864+ * Prettier HTML footnote references: put anchor inside sup,
3865+ instead of other way. Resolves Issue #191. Thanks to
3866+ infinity0x.
3867+
3868+ * Added --xetex option to pandoc and markdown2pdf.
3869+ If --xetex is specified, pandoc produces latex suitable for
3870+ processing by xelatex, and markdown2pdf uses xelatex to create
3871+ the PDF. Resolves Issue #185.
3872+
3873+ * RTF writer: multiple authors now occupy multiple paragraphs rather
3874+ than using a line break.
3875+
3876+ * Man writer: now the "--after-body" will come after the "AUTHORS"
3877+ section, whereas before it would come before it. This is a
3878+ slight break from backwards compatibility.
3879+
3880+ * Added --reference-odt option, so users may customize the styles
3881+ used in pandoc-generated ODT files. Users may also place a
3882+ default reference.odt in the ~\.pandoc directory.
3883+
3884+ * ODT writer:
3885+ + Indented and line-broke styles.xml so it can be modified more easily.
3886+ + Omitted some unnecessary style declarations.
3887+ + Don't wrap text in OpenDocument writer. The tags are too long, making
3888+ wrapping ugly and pointless.
3889+
3890+ * LaTeX reader: use \\ to separate multiple authors.
3891+
3892+ * Markdown reader: use ; as separator between authors.
3893+ This allows you to use ',' within author names: e.g. "John Jones, Jr."
3894+
3895+ * S5 writer: use linebreak to separate authors in title page.
3896+
3897+ * RST reader: Allow :: before lhs code block. The RST spec requires the
3898+ :: before verbatim blocks. This :: should not be treated as literal
3899+ colons. Resolves Issue #189.
3900+
3901+ * Documented pandoc 1.3's new definition list syntax in README.
3902+ (An oversight in the last release.)
3903+
3904+ * markdown2pdf.hs:
3905+ + interpret ! in a log as an error line.
3906+ + --toc now works properly.
3907+
3908+ * Changes in RunTests.hs:
3909+ + Use the Diff library rather than a local copy of Diff.hs.
3910+ (This vastly increases performance.) This change means that 'cabal
3911+ test' presupposes that the Diff library is installed.
3912+ + Removed tests/Diff.hs from cabal file.
3913+ + Changed RunTests to use local environment. We need at least HOME, so
3914+ pandoc can find its data directory.
3915+
3916+ * Updated windows installer to install data files in the app directory.
3917+
3918+ * Windows installer now installs portable wrappers hsmarkdown and
3919+ markdown2pdf.
3920+
3921+pandoc (1.3)
3922+
3923+ [ John MacFarlane ]
3924+
3925+ * Added --id-prefix option (Issue #41). This adds a prefix to all
3926+ automatically generated HTML identifiers, which helps prevent
3927+ duplicate identifiers when you're generating a fragment (say a blog
3928+ post).
3929+
3930+ * Added --indented-code-classes option. This specifies classes
3931+ to use for indented code blocks. (Patch due to buttock; Issue #87.)
3932+
3933+ * --number-sections now affects HTML output as well as ConTeXt and LaTeX
3934+ (Issue #150).
3935+
3936+ * Improved syntax for markdown definition lists (Issue #24).
3937+ Definition lists are now more compatible with PHP Markdown Extra.
3938+ + You can have multiple definitions for a term (but still not
3939+ multiple terms).
3940+ + Multi-block definitions no longer need a column before each block
3941+ (indeed, this will now cause multiple definitions).
3942+ + The marker no longer needs to be flush with the left margin,
3943+ but can be indented at or two spaces. Also, ~ as well as :
3944+ can be used as the marker (this suggestion due to David
3945+ Wheeler.)
3946+ + There can now be a blank line between the term and the
3947+ definitions.
3948+
3949+ * Better looking simple tables. Resolves Issue #180.
3950+ + Markdown reader: simple tables are now given column widths of 0.
3951+ + Column width of 0 is interpreted as meaning: use default column width.
3952+ + Writers now include explicit column width information only
3953+ for multiline tables. (Exception: RTF writer, which requires
3954+ column widths. In this case, columns are given equal widths,
3955+ adding up to the text width.)
3956+ + Simple tables should now look better in most output formats.
3957+
3958+ * Allow markdown tables without headers (Issue #50).
3959+ The new syntax is described in README. Also allow optional line of
3960+ dashes at bottom of simple tables.
3961+
3962+ * Compensate for width of final table column (Issue #144).
3963+
3964+ * Treat a backslash followed by a newline as a hard line break
3965+ in markdown. Resolves Issue #154. This is a nice alternative
3966+ to markdown's "invisible" way of indicating hardline breaks
3967+ using lines that end with two spaces.
3968+
3969+ * Improved performance of markdown reader by ~10% by eliminating the
3970+ need for a separate parsing pass for notes. Raw notes are now stored
3971+ on the first pass (which parses references), then parsed when the
3972+ note is inserted into the AST. The stateNotes field in ParserState
3973+ is now a list of [(String, String)] pairs instead of [(String,
3974+ [Block])].
3975+
3976+ * In markdown reader, treat 4 or more * or _ in a row as literal
3977+ text. (Trying to parse long strings of * or _ as strong or emph
3978+ leads to exponential performance problems.)
3979+
3980+ * Markdown reader: Use + rather than %20 for spaces in URLs.
3981+
3982+ * Fixed htmlComment parser, adding a needed 'try'.
3983+
3984+ * Don't print raw HTML in man output.
3985+
3986+ * Allow . _ and ~ in header identifiers.
3987+
3988+ * Specially mark code blocks that were "literate" in the input.
3989+ They can then be treated differently in the writers. This allows
3990+ authors to distinguish bits of the literate program they are writing
3991+ from source code examples, even if the examples are marked as
3992+ Haskell for highlighting. (Issue #174.)
3993+
3994+ * Modified html+lhs output to use "haskell" highlighter instead
3995+ of "literateHaskell". The highlighting module now adds bird tracks
3996+ after highlighting (for HTML output), if the code block has the
3997+ "literate" class. This gives better results, because kate's
3998+ haskell highlighter is much better than the literateHaskell
3999+ highlighter.
4000+
4001+ * Fixed handling of footnotes in titles (HTML) and headers (LaTeX).
4002+ (Issue #137.)
4003+
4004+ * Support for "..code-block" directive in RST reader. Not core
4005+ RST, but used in Sphinx for code blocks annotated with syntax
4006+ information. Thanks to Luke Plant for the patch.
4007+
4008+ * Added "head" to list of block-level HTML tags. Resolves
4009+ Issue #108.
4010+
4011+ * Added stripTags to Text.Pandoc.XML. This is used in the HTML writer.
4012+
4013+ * Set utf-8 encoding in texinfo headers.
4014+
4015+ * Docbook writer: add ids to sections. Use link for internal links.
4016+ (Issue #60.)
4017+
4018+ * Blank lines after lists in MediaWiki writer.
4019+
4020+ * Properly handle commented-out list items in markdown.
4021+ Resolves Issue #142. Example:
4022+
4023+ - a
4024+ <!--
4025+ - b
4026+ -->
4027+ - c
4028+
4029+ * Changed heuristic in compactify. compactify has to decide whether a
4030+ Para that ends a list is a Para intentionally, or just because of
4031+ the blank lines at the end of every list. In the latter case the
4032+ Para is turned to a Plain. The old heuristic was: change final Para
4033+ to Plain iff the other items all end in Plain. This produces bad
4034+ results when, for example, an item contains just a Plain and an HTML
4035+ comment, as it does in the list above. The new heuristic: change
4036+ final Para to Plain iff the other items don't contain a Para.
4037+
4038+ * Added % as an rst underline character. Resolves Issue #173.
4039+
4040+ * Fix inline math parser so that \$ is allowed in math.
4041+ Resolves Issue #169.
4042+
4043+ * Translate \int (integral) into unicode when using unicode math
4044+ method. Resolves Issue #177.
4045+
4046+ * markdown2pdf.hs improvements:
4047+ + Use System.IO.UTF8.
4048+ + Print error messages on last attempt.
4049+ + Do not create a backup when overwriting a PDF (Issue #166).
4050+ + Accept --longopt=val options.
4051+ + Added man/man1/markdown2pdf.1 to extra-tmp-files in cabal, so that
4052+ it is properly cleaned.
4053+
4054+ * Added haddock comments warning that readers assume \n line endings.
4055+
4056+ * Updated COPYRIGHT file.
4057+
4058+ * Makefile: Changed EXECSBASE so it doesn't pull in hsmarkdown &
4059+ markdown2pdf. Otherwise strip tries to strip shell scripts when you
4060+ install using 'make'.
4061+
4062+ * Changed Makefile so it doesn't build Haskell wrappers.
4063+
4064+ * Fixed Makefile so it doesn't try to build man pages in build-doc.
4065+
4066+ * Install pcre3.dll in Windows install script; this allows us to
4067+ package a version of pandoc with highlighting support.
4068+
4069+pandoc (1.2.1)
4070+
4071+ [ John MacFarlane ]
4072+
4073+ * Fixed regression with --preserveTabs. Brought back optPreserveTabs.
4074+ The trick of setting tabStop to 0 to mean "preserve tabs" had a bad
4075+ side effect: strings of 0 spaces were interpreted as indentation.
4076+ So, with --preserve-tabs, unindented paragraphs were treated as
4077+ code. Resolves Issue #138.
4078+
4079+ * HTML writer: wrap sections in divs. Resolves Issue #70.
4080+
4081+ + hierarchicalize has been rationalized; it builds a hierarchical
4082+ representation of the document from the headers, and simultaneously
4083+ gives each section a unique identifier based on the heading title.
4084+ + Identifiers are now attached to the divs rather than
4085+ to the headers themselves.
4086+ + Table of content backlinks go to the beginning of the table, rather
4087+ than to the section reference that was clicked.
4088+ + Code for constructing identifiers has been moved to Text.Pandoc.Shared
4089+ from the HTML writer, since it is now consumed only by
4090+ hierarchicalize.
4091+ + In --strict mode, pandoc just prints bare headings, as before
4092+ (unless --toc has been specified).
4093+ + In s5 output, it does not wrap sections in divs, as that seems to
4094+ confuse the s5 javascript.
4095+
4096+ * Man writer: break lines at end of each sentence. groff expects this
4097+ and treats '.' and '?' differently when followed by line ending as
4098+ opposed to ordinary space. Also, don't escape periods. Instead, use
4099+ zero-width character \& to avoid unwanted interpretation of periods
4100+ at start of line. Resolves Issue #148.
4101+
4102+ * Markdown writer: Added '#' and '>' to list of characters to be
4103+ escaped in markdown output. Removed '<', as it is not an officially
4104+ escapable character. This partially resolves Issue #96.
4105+
4106+ * Make --smart the default for man output format. Otherwise we have
4107+ trouble dividing lists of endlines into sentences.
4108+
4109+ * DocBook writer: Use language attribute to indicate source language
4110+ in code blocks.
4111+
4112+ * RST reader:
4113+
4114+ + Allow # to continue list, even if the list was started with an
4115+ explicit marker. For example:
4116+
4117+ A. my list
4118+ #. continued
4119+
4120+ Resolves Issue #140.
4121+ + Allow continuation lines in line blocks. Also added test cases for
4122+ line blocks for RST reader. Resolves Issue #149.
4123+ + Allow explicit links with spaces in URL: `link <to this>`_
4124+
4125+ * Improved LaTeX reader's coverage of math modes. Remove displaymath*
4126+ (which is not in LaTeX) and recognize all the amsmath environments
4127+ that are alternatives to eqnarray, namely equation, equation*,
4128+ gather, gather*, gathered, multline, multline*, align, align*,
4129+ alignat, alignat*, aligned, alignedat, split. Resolves Issue #103.
4130+ Thanks to shreevatsa.public for the patch.
4131+
4132+ * Markdown reader:
4133+
4134+ + Allow -, _, :, . in markdown attribute names. These are legal in
4135+ XML attribute names.
4136+ + Use non-breaking spaces in abbreviations.
4137+ + Markdown reader: improved efficiency of abbreviation parsing.
4138+ Instead of a separate abbrev parser, we just check for
4139+ abbreviations each time we parse a string. This gives a huge
4140+ performance boost with -S. Resolves Issue #141.
4141+
4142+ * Improved efficiency of shared parsers: hexNum, htmlComment,
4143+ whitespace, indentSpaces.
4144+
4145+ * Export HTMLMathMethod in Text.Pandoc.
4146+
4147+ * Export languagesByExtension in Text.Pandoc.Highlighting.
4148+
4149+ * Added new Haskell version of markdown2pdf, due to
4150+ Paulo Tanimoto. This should be more portable than the old
4151+ shell script.
4152+
4153+ * Made 'pandoc -v' more explicit about compiler options.
4154+ Resolves Issue #139.
4155+
4156+ * pandoc.hs: Made --strict compatible with --standalone, --toc.
4157+
4158+ * Use Paths_pandoc to get version number, instead of hard-coding it
4159+ into Text/Pandoc.hs.
4160+
4161+pandoc (1.2)
4162+
4163+ [ John MacFarlane ]
4164+
4165+ * Added support for literate Haskell. lhs support is triggered by
4166+ '+lhs' suffixes in formats. For example, 'latex+lhs' is literate
4167+ Haskell LaTeX. '.lhs' files are treated by default as literate
4168+ markdown.
4169+
4170+ + Added stateLiterateHaskell to parser state.
4171+ + Added parser for lhsCodeBlock to Markdown, RST, LaTeX readers.
4172+ + Added parser for |inline lhs| to LaTeX reader.
4173+ + Added writerLiterateHaskell to WriterOptions.
4174+ + Added lhs support to Markdown, RST, LaTeX, HTML writers.
4175+ + Added definition of code environment to LaTeX header.
4176+ + Added tests (run only if highlighting support compiled in).
4177+ + Documented lhs features in man page and README.
4178+
4179+ * In Text.Pandoc.Definition, added processWith, processWithM,
4180+ and queryWith, and deprecated processPandoc and queryPandoc
4181+ for these more general functions.
4182+
4183+ * Fixed bug in mediawiki writer: improper closing tags in tables.
4184+ Thanks to Benct Philip Jonsson for reporting the bug.
4185+
4186+ * Added --email-obfuscation option.
4187+
4188+ + Added writer option for email obfuscation.
4189+ + Implemented email obfuscation options in HTML writer.
4190+ + Added option to option parser.
4191+ + Documented in README and pandoc man page.
4192+ + Resolves Issue #97.
4193+
4194+ * LaTeX writer: fixed bug with empty table cells.
4195+ Resolves Issue #107. Thanks to rodja.trappe for the patch.
4196+
4197+ * Fixed bug with header spacing in Markdown and RST writers.
4198+ A null header (Meta [] [] []) should not cause a blank line
4199+ at the beginning of output. But a blank line is needed between
4200+ a non-null header and the main text.
4201+
4202+ * Markdown reader: Relax spacing rules for $$ in display math. Now
4203+ space and newlines are allowed after the opening $$ and before the
4204+ closing $$. However, the display math cannot contain an entirely
4205+ blank line. Resolves Issue #105.
4206+
4207+ * Markdown reader: Gobble space after Plain blocks containing only
4208+ raw html inline. Otherwise following header blocks are not parsed
4209+ correctly, since the parser sees blank space before them. Resolves
4210+ Issue #124.
4211+
4212+ * Markdown reader: Allow " as well as '' to end a latex double-quote.
4213+
4214+ * Conditionally depend on syb and base >= 4 if ghc >= 6.10.
4215+ Resolves Issue #109.
4216+
4217+ * Fixed problems in RST and markdown output due to bug in pretty-1.0.1.0
4218+
4219+ + Added hang' function to Text.Pandoc.Shared; this will be used instead
4220+ of hang, which doesn't work properly in pretty-1.0.1.0. When pretty
4221+ is upgraded, we can go back to hang.
4222+ See http://article.gmane.org/gmane.comp.lang.haskell.general/16687
4223+ + Use hang' (and some different techniques) in RST and markdown writers.
4224+ Some output is now a bit different.
4225+
4226+ * Brought citeproc support up to date for citeproc-hs-0.2.
4227+ (Patch by Andrea Rossato.)
4228+
4229+ * Moved all haskell source to src subdirectory. Renamed Main.hs to
4230+ pandoc.hs.
4231+
4232+ * Rewrote hsmarkdown in Haskell for portability (src/hsmarkdown.hs).
4233+ For now, keeping the old shell script too.
4234+
4235+ * Added TemplateHaskell to Extensions for executable, removed
4236+ -threaded for library. Thanks to duncan.coutts for the bug report.
4237+ Resolves Issue #121.
4238+
4239+ * Moved some Extra-Source-Files to Data-Files.
4240+
4241+ * Moved tabFilter to Shared.
4242+
4243+ * In pandoc.hs, removed optPreserveTabs; instead, tabstop of 0 means
4244+ preserve tabs.
4245+
4246+ * Minor code cleanup based on hlint suggestions.
4247+
4248+pandoc (1.1)
4249+
4250+ [ John MacFarlane ]
4251+
4252+ * Main.hs:
4253+
4254+ + Changed date on copyright message in Main.hs.
4255+ + Have the '-v' option print syntax highlighting languages
4256+ separated by commas, and wrapped in lines, instead of in five
4257+ columns as before.
4258+
4259+ * Added --jsmath option. Resolves Issue #68.
4260+
4261+ + Added --jsmath option to Main.hs
4262+ + Added JsMath to HTMLMathMethod in Text.Pandoc.Shared.
4263+ + Handle math appropriately in HTML writer when JsMath selected.
4264+ + Documented the option in README and man page.
4265+
4266+ * Text.Pandoc.Shared: Changed compactify to use a better heuristic
4267+ for tight and loose lists. Final Para is changed to Plain if all
4268+ other list items *end* with a Plain block. Addresses Issue #99.
4269+
4270+ * HTML reader:
4271+
4272+ + Added colons to protocols in unsanitaryURI. Closes Issue #88.
4273+ + HTML reader: Don't interpret contents of <pre> blocks as markdown.
4274+ Added rawVerbatimBlock parser. Resolves Issue #94.
4275+
4276+ * Markdown reader:
4277+
4278+ + Allow URLs with spaces in them in links and references, but escape
4279+ them as "%20".
4280+ + Allow blank space at the end of horizontal rules.
4281+
4282+ * RST reader: Modified 'unknownDirective' parser to handle comment
4283+ blocks correctly, and added tests for comment blocks. Resolves Issue
4284+ #86. Closes Debian Bug #500662.
4285+
4286+ * HTML writer:
4287+
4288+ + Include classes on tr elements in HTML output:
4289+ "header", "odd", "even". This allows tables to be styled with
4290+ lines in alternating colors. Resolves Issue #91.
4291+ + Enclose all LaTeXMathML bits in <span class="LaTeX">.
4292+ This prevents parts of the document that are not math from being
4293+ interpreted as math by LaTeXMathML.js.
4294+
4295+ * OpenDocument and ODT writers: Added support for HorizontalRule elements,
4296+ which were formerly ignored. Resolves Issue #95.
4297+
4298+ * Text.Pandoc.Shared: Modified wrappedTeX to eliminate the line break
4299+ between a footnote and immediately following nonspace characters in
4300+ LaTeX and ConTeXt output. (This gets interpreted as a space, which
4301+ is not desired in cases like "text^[note]---".) Resolves Issue #93.
4302+
4303+ * Windows installer: Don't require admin privileges to run
4304+ installer. Modified pandoc-setup.iss, and changed modpath.iss to
4305+ modify HKCU path if user lacks admin privileges. Also fixed case
4306+ where oldpath is empty (previously this led to the new path
4307+ beginning with a semicolon).
4308+
4309+ * Updated INSTALL instructions for Arch packages and OS X install using
4310+ cabal-install.
4311+
4312+ * Removed the (now unneeded) debian directory.
4313+ Removed empty Codec and System directories.
4314+
4315+ * Moved odt-styles/ to data/. Removed unneeded variable in Makefile.
4316+
4317+ * Modified Setup.hs so that the "test" target returns an error status
4318+ when tests fail, and "build" returns a success status if
4319+ the build succeeds. Resolves Issue #100.
4320+
4321+ * Added BUGS to files in tarball.
4322+
4323+
4324+pandoc (1.0.0.1)
4325+
4326+ [ John MacFarlane ]
4327+
4328+ * Removed spurious reference to pdf output format from pandoc(1) man page.
4329+
4330+pandoc (1.0)
4331+
4332+ [ Andrea Rossato ]
4333+
4334+ * Added new OpenDocument writer.
4335+
4336+ * Added support for SmallCaps inline element.
4337+
4338+ * Added support for integrating pandoc with citeproc-hs.
4339+
4340+ + Added Cite element to definition and writers.
4341+ + Added Text.Pandoc.Biblio module
4342+ + Note: This support is included only if the 'citeproc'
4343+ Cabal configuration flag is set.
4344+
4345+ * Made Pandoc data structure an instance of Typeable.
4346+ Added new processPandoc and queryPandoc functions, to query
4347+ or transform matching elements in a Pandoc structure.
4348+
4349+ [ Peter Wang ]
4350+
4351+ * Added new Texinfo writer.
4352+
4353+ [ John MacFarlane ]
4354+
4355+ * Changes to Texinfo writer:
4356+
4357+ + No space between paragraph and following @verbatim (provides more
4358+ pleasing appearance in text formats)
4359+ + Blank line consistently after list environments.
4360+ + Removed deVerb.
4361+ + Use @code instead of @verb for inline code (this solves the character
4362+ escaping problem for texi2dvi and texi2pdf).
4363+ + Added news of Texinfo writer to README.
4364+ + Added Texinfo to list of formats in man page, and removed extra 'groff'.
4365+ + Added texi & texinfo extensions to Main.hs, and fixed bug in determining
4366+ default output extension.
4367+ + Modified disallowedInNode in Texinfo writer to correct list of disallowed characters.
4368+
4369+ * Added tests for OpenDocument writer.
4370+
4371+ * Added ODT writer (using zip-archive library to package output of
4372+ OpenDocument writer). Added odt-styles directory with default ODT styles.
4373+
4374+ * Added new mediawiki writer and tests.
4375+
4376+ * Markdown reader: Added support for delimited code blocks, with optional
4377+ syntax highlighting using highlighting-kate (if the 'highlighting'
4378+ configuration option is selected).
4379+
4380+ + Currently highlighting is supported only in the HTML writer.
4381+ + Delimited code blocks can have attributes; using the language name as
4382+ class triggers highlighting.
4383+ + New Attributes parameter in CodeBlock structure.
4384+ + --version now indicates whether syntax highlighting support is compiled
4385+ in, and prints a list of supported languages
4386+
4387+ * Removed debian directory. Pandoc is no longer a native debian package.
4388+
4389+ * Changes to build process: pandoc can now be built from the repository
4390+ using Cabal. No unix tools are needed (so, pandoc can be built on Windows
4391+ without Cygwin).
4392+
4393+ + Include shell scripts themselves in repo, rather than generating from wrappers.
4394+ Removed wrappers directory and wrappers Makefile target.
4395+ + Text/Pandoc/ASCIIMathML.hs, Text/Pandoc/DefaultHeaders.hs,
4396+ and Text/Pandoc/Writers/S5.hs are no longer built in Makefile
4397+ from templates in the templates/ directory. Instead, they use template
4398+ haskell to read data at compile time from the relevant files in data/.
4399+ Template haskell functions go in a new module, Text.Pandoc.TH.
4400+ + man pages are now generated in Setup.hs hook, not by Makefile
4401+ + Makefile 'tarball' target now calls Cabal's 'sdist'
4402+ + Added "Extra-Source-Files" to pandoc.cabal, so sdist contains everything needed
4403+ + Added "Build-Type" field to pandoc.cabal to avoid warning.
4404+ + Added to "Extra-source-files" and "Extra-tmp-files" in pandoc.cabal,
4405+ so 'sdist' and 'clean' will work properly.
4406+ + Setup.hs now generates man pages in a postbuild hook.
4407+ + Added dependency-checking to Setup.hs, so it only rebuilds things
4408+ that need rebuilding.
4409+ + Added 'library' and 'executable' configuration flags.
4410+ Cabal can now be told to build just the library or just the executable.
4411+ + CABALOPTS may now be specified with 'make' to pass Cabal configuration flags.
4412+ For example: CABALOPTS=-fhighlighting make
4413+
4414+ * Rewrote test suite so it doesn't depend on perl or unix tools.
4415+
4416+ + Replaced old runtests.pl with a Haskell script RunTests.hs.
4417+ + Added Diff.hs module to be used by RunTests.hs instead of unix 'diff'.
4418+ + Added test hook to Setup.hs, so tests may be run from cabal.
4419+ + Changed Makefile's 'test' target to run tests via cabal.
4420+ + Removed old generate.sh.
4421+ + Since we no longer have 'sed' to filter out raw HTML sections
4422+ from the docbook writer test, or raw LaTeX sections from the
4423+ context writer test, we now just include these sections.
4424+ They can be taken out if it is necessary to process the files.
4425+ + Updated latex and context writer tests to remove extra spaces
4426+ after '\\item'
4427+ + Added a markdown table reader test.
4428+ + Added markdown-reader-more.txt to test suite, for additional test cases
4429+ for raw ConTeXt environments and more.
4430+
4431+ * Compatibility fixes for CPP, Cabal, and haddock:
4432+
4433+ + Use CPP in "Extensions" field in pandoc.cabal.
4434+ + Removed use of backslash string continuations in source files.
4435+
4436+ * Removed pandoc.cabal.ghc66. We now require Cabal >= 1.2, GHC >= 6.8,
4437+ base >= 3.
4438+
4439+ * Require parsec < 3.
4440+ The compatibility module in parsec 3.0.0 gives far worse performance than
4441+ parsec 2.1. Eventually pandoc will be upgraded to use the new bytestring
4442+ version of parsec, and then we'll go to parsec 3.0.0.
4443+
4444+ * Removed Text.Regex dependencies by rewriting using plain Haskell
4445+ (Text.Pandoc.Writers.RTF, Text.Pandoc.Writers.HTML, Main.hs)
4446+
4447+ * Moved Text.Pandoc.Writers.DefaultHeaders -> Text.Pandoc.DefaultHeaders.
4448+
4449+ * Makefile:
4450+
4451+ + Added 'configure' as dependency of 'uninstall-all'.
4452+ (It uses the Cabal build program.)
4453+ + Makefile: only use --with-hc-pkg if GHC_PKG is defined.
4454+ Note that Cabal will automatically choose the ghc-pkg appropriate
4455+ for the compiler selected, so normally specifying GHC by itself
4456+ is sufficient.
4457+
4458+ * Removed Text.Pandoc.UTF8 module; instead, depend on utf8-string and use
4459+ its IO and conversion functions.
4460+
4461+ * Added -Wall to ghc-options in pandoc.cabal. Cleaned up modules so that
4462+ everything is -Wall clean.
4463+
4464+ + Added pragma to HTML writer to avoid deprecation warning for use of "start" attribute.
4465+ + Added pragma to Text/Pandoc/Shared.hs to get rid of "orphan instance" warnings.
4466+ (These are caused by the Lift instance for ByteString.)
4467+
4468+ * Changed the comment used to replace unsafe HTML if sanitize-html option
4469+ selected.
4470+
4471+ * Made -c/--css option repeatable on the command line (like -H, -A, -B).
4472+
4473+ * Moved XML-formatting functions to new unexported module Text.Pandoc.XML.
4474+
4475+ * Escape '\160' as " ", not " " in XML.
4476+ "nbsp" isn't a predefined XML entity.
4477+
4478+ * Fixed bug in RST reader, which would choke on: "p. one\ntwo\n".
4479+ Added some try's in ordered list parsers.
4480+
4481+ * Man writer: don't escape " as \".
4482+
4483+ * Allow newline before URL in markdown link references. Resolves Issue #81.
4484+ Added tests for this issue in new "markdown-reader-more" tests.
4485+ Changed RunTests.hs to run these tests.
4486+
4487+ * Support for display math. Resolves Issue #47.
4488+
4489+ + Added a DisplayMath/InlineMath selector to Math inlines.
4490+ + Markdown parser yields DisplayMath for $$...$$.
4491+ + LaTeX parser yields DisplayMath when appropriate. Removed
4492+ mathBlock parsers, since the same effect is achieved by the math
4493+ inline parsers, now that they handle display math.
4494+ + Writers handle DisplayMath as appropriate for the format.
4495+ + Modified tests accordingly; added new tests for display math.
4496+
4497+ * Use LaTeXMathML instead of ASCIIMathML. LaTeXMathML is closer
4498+ to LaTeX in its display of math, and supports many non-math LaTeX environments.
4499+
4500+ + Changed -m option to use LaTeXMathML rather than ASCIIMathML.
4501+ + Modified HTML writer to print raw TeX when LaTeXMathML is
4502+ being used instead of suppressing it.
4503+ + Removed ASCIIMathML files from data/ and added LaTeXMathML.
4504+ + Replaced ASCIIMathML with LaTeXMathML in source files.
4505+ + Modified README and pandoc man page source.
4506+ + Added --latexmathml option (kept --asciimathml as a synonym
4507+ for backwards compatibility)
4508+
4509+ * Markdown reader: Parse setext headers before atx headers.
4510+ Test case:
4511+ # hi
4512+ ====
4513+ parsed by Markdown.pl as an H1 header with contents "# hi".
4514+
4515+ * Markdown reader: Treat "mixed" lists the same way as Markdown.pl does.
4516+ The marker on the first list item determines the type of the whole
4517+ list. Thus, a list like
4518+ 1. one
4519+ - two
4520+ * three
4521+ gets parsed as a single ordered list. (Previous versions of pandoc
4522+ treated this as an ordered list with an unordered sublist.)
4523+
4524+ * Markdown smart typography:
4525+
4526+ + Em dashes no longer eat surrounding whitespace. Resolves Issue #69.
4527+ + Use nonbreaking spaces after known abbreviations in markdown parser.
4528+ Thus, for example, "Mr. Brown" comes out as "Mr.~Brown" in LaTeX, and does
4529+ not produce a sentence-separating space. Resolves Issue #75.
4530+
4531+ * Markdown writer: Print unicode \160 literally, rather than as .
4532+
4533+ * Treat '\ ' in (extended) markdown as nonbreaking space.
4534+ Print nonbreaking space appropriately in each writer (e.g. ~ in LaTeX).
4535+
4536+ * The '--sanitize-html' option now examines URIs in markdown links
4537+ and images, and in HTML href and src attributes. If the URI scheme
4538+ is not on a whitelist of safe schemes, it is rejected. The main point
4539+ is to prevent cross-site scripting attacks using 'javascript:' URIs.
4540+ See http://www.mail-archive.com/markdown-discuss@six.pairlist.net/msg01186.html
4541+ and http://ha.ckers.org/xss.html. Resolves Issue #62.
4542+
4543+ * HTML writer:
4544+
4545+ + Override Text.XHtml's stringToHtml function,
4546+ so that characters below 0xff are not converted to numerical entity
4547+ references. Also convert '\160' to " ". This should aid readability
4548+ and editability of the HTML source. It does presuppose that the HTML
4549+ will be served as UTF-8.
4550+ + In code blocks, change leading newlines to <br /> tags.
4551+ (Some browsers ignore them.) Resolves Issue #71.
4552+ See http://six.pairlist.net/pipermail/markdown-discuss/2008-May/001297.html
4553+ + Use style attributes rather than css classes for strikethrough
4554+ and ordered list styles. This works better when fragments, rather than
4555+ standalone documents, are generated.
4556+
4557+ * HTML reader: Count anything that isn't a known block (HTML) tag as an
4558+ inline tag (rather than the other way around). Added "html", "head", and
4559+ "body" to list of block tags. Resolves Issue #66, allowing
4560+ <lj> to count as an inline tag.
4561+
4562+ * RTF writer: Fixed bug. Extra spaces were being printed after emphasized,
4563+ boldface, and other inline elements. Resolves Issue #64.
4564+
4565+ * LaTeX reader: improvements in raw LaTeX parsing.
4566+
4567+ + "loose punctuation" (like {}) parsed as Space
4568+ + Para elements must contain more than Str "" and Space elements
4569+ + Added parser for "\ignore" command used in literate haskell.
4570+ + Reworked unknownCommand and rawLaTeXInline: when not in "parse raw"
4571+ mode, these parsers simply strip off the command part and allow
4572+ the arguments to be parsed normally. So, for example,
4573+ \blorg{\emph{hi}} will be parsed as Emph "hi" rather than
4574+ Str "{\\emph{hi}}".
4575+ + Parse lhs "code" environments as verbatim.
4576+ Refactored parsers for verbatim environments.
4577+ + Removed specialEnvironment parser.
4578+ + parse '{}', if present, after \textless, \textgreater,
4579+ \textbar, \textbackslash, \ldots.
4580+ + Parse unescaped special characters verbatim rather than
4581+ changing them to spaces. This way arguments of unknown
4582+ commands will appear in braces.
4583+
4584+ * Parse raw ConTeXt environments as TeX in markdown reader.
4585+ Resolves Issue #73.
4586+
4587+ * Moved BlockWrapper and wrappedBlocksToDoc from ConTeXt writer to Shared.
4588+
4589+ * Made some structural changes to parsing of raw LaTeX environments.
4590+ Previously there was a special block parser for LaTeX environments.
4591+ It returned a Para element containing the raw TeX inline. This has
4592+ been removed, and the raw LaTeX environment parser is now used in the
4593+ rawLaTeXInline parser. The effect is exactly the same, except that we
4594+ can now handle consecutive LaTeX and ConTeXt environments not separated
4595+ by spaces. This new flexibility is required by the example in
4596+ Issue #73:
4597+
4598+ \placeformula \startformula
4599+ L_{1} = L_{2}
4600+ \stopformula
4601+
4602+ API change: The LaTeX reader now exports rawLaTeXEnvironment' (which
4603+ returns a string) rather than rawLaTeXEnvironment (which returns a block
4604+ element). This is more likely to be useful in other applications.
4605+
4606+ * Use \textsubscr instead of \textsubscript for LaTeX subscript macro.
4607+ \textsubscript conflicts with a definition in the memoir class.
4608+ Resolves Issue #65.
4609+
4610+ * Removed unneeded space after "\\item" in LaTeX and ConTeXt output.
4611+
4612+ * Added amsmath package to default LaTeX header. Resolves Issue #48.
4613+
4614+ * Added \setupitemize[autointro] to ConTeXt header, to prevent orphaned
4615+ list introduction lines.
4616+
4617+ * Changed Float to Double in definition of Table element.
4618+ (Double is more efficient in GHC.)
4619+
4620+ * Fixed bug in Markdown parser: regular $s triggering math mode.
4621+ For example: "shoes ($20) and socks ($5)."
4622+ The fix consists in two new restrictions:
4623+
4624+ + the $ that ends a math span may not be directly followed by a digit.
4625+ + no blank lines may be included within a math span.
4626+
4627+ Thanks to Joseph Reagle for noticing the bug.
4628+
4629+ * Use Data.List's 'intercalate' instead of custom 'joinWithSep'.
4630+ Removed 'joinWithSep' from Text.Pandoc.Shared.
4631+
4632+ * Updated README and man pages. Acknowledge contributors in README.
4633+ Added paragraph to README about producing S5 with separate CSS/javascript.
4634+
4635+ * Updated INSTALL to reflect new build system (including configuration
4636+ options) and document new dependencies. Added note to INSTALL that
4637+ Cabal >= 1.2 is required for build. Resolves Issue #74.
4638+
4639+ * Fixed some haddock documentation errors.
4640+
4641+ * Small fix to markdown2pdf man page: only input needs to be piped through iconv.
4642+
4643+pandoc (0.46) unstable; urgency=low
4644+
4645+ [ John MacFarlane ]
4646+
4647+ * Made -H, -A, and -B options cumulative: if they are specified
4648+ multiple times, multiple files will be included.
4649+
4650+ * Added optional HTML sanitization using a whitelist.
4651+ When this option is specified (--sanitize-html on the command line),
4652+ unsafe HTML tags will be replaced by HTML comments, and unsafe HTML
4653+ attributes will be removed. This option should be especially useful
4654+ for those who want to use pandoc libraries in web applications, where
4655+ users will provide the input.
4656+
4657+ + Main.hs: Added --sanitize-html option.
4658+
4659+ + Text.Pandoc.Shared: Added stateSanitizeHTML to ParserState.
4660+
4661+ + Text.Pandoc.Readers.HTML:
4662+ - Added whitelists of sanitaryTags and sanitaryAttributes.
4663+ - Added parsers to check these lists (and state) to see if a given
4664+ tag or attribute should be counted unsafe.
4665+ - Modified anyHtmlTag and anyHtmlEndTag to replace unsafe tags
4666+ with comments.
4667+ - Modified htmlAttribute to remove unsafe attributes.
4668+ - Modified htmlScript and htmlStyle to remove these elements if
4669+ unsafe.
4670+
4671+ + Modified README and man pages to document new option.
4672+
4673+ * Improved handling of email addresses in markdown and reStructuredText.
4674+ Consolidated uri and email address parsers. (Resolves Issue #37.)
4675+
4676+ + New emailAddress and uri parsers in Text.Pandoc.Shared.
4677+ - uri parser uses parseURI from Network.URI.
4678+ - emailAddress parser properly handles email addresses with periods
4679+ in them.
4680+
4681+ + Removed uri and emailAddress parsers from Text.Pandoc.Readers.RST
4682+ and Text.Pandoc.Readers.Markdown.
4683+
4684+ * Markdown reader:
4685+
4686+ + Fixed emph parser so that "*hi **there***" is parsed as a Strong
4687+ nested in an Emph. (A '*' is only recognized as the end of the
4688+ emphasis if it's not the beginning of a strong emphasis.)
4689+
4690+ + Moved blockQuote parser before list parsers for performance.
4691+
4692+ + Modified 'source' parser to allow backslash-escapes in URLs.
4693+ So, for example, [my](/url\(1\)) yields a link to /url(1).
4694+ Resolves Issue #34.
4695+
4696+ + Disallowed links within links. (Resolves Issue #35.)
4697+ - Replaced inlinesInBalanced with inlinesInBalancedBrackets, which
4698+ instead of hard-coding the inline parser takes an inline parser
4699+ as a parameter.
4700+ - Modified reference and inlineNote to use inlinesInBalancedBrackets.
4701+ - Removed unneeded inlineString function.
4702+ - Added inlineNonLink parser, which is now used in the definition of
4703+ reference.
4704+ - Added inlineParsers list and redefined inline and inlineNonLink parsers
4705+ in terms of it.
4706+ - Added failIfLink parser.
4707+
4708+ + Better handling of parentheses in URLs and quotation marks in titles.
4709+ - 'source' parser first tries to parse URL with balanced parentheses;
4710+ if that doesn't work, it tries to parse everything beginning with
4711+ '(' and ending with ')'.
4712+ - source parser now uses an auxiliary function source'.
4713+ - linkTitle parser simplified and improved, under assumption that it
4714+ will be called in context of source'.
4715+
4716+ + Make 'block' conditional on strictness state, instead of using
4717+ failIfStrict in block parsers. Use a different ordering of parsers
4718+ in strict mode (raw HTML block before paragraph) for performance.
4719+ In non-strict mode use rawHtmlBlocks instead of htmlBlock.
4720+ Simplified htmlBlock, since we know it's only called in strict
4721+ mode.
4722+
4723+ + Improved handling of raw HTML. (Resolves Issue #36.)
4724+ - Tags that can be either block or inline (e.g. <ins>) should
4725+ be treated as block when appropriate and as inline when
4726+ appropriate. Thus, for example,
4727+ <ins>hi</ins>
4728+ should be treated as a paragraph with inline <ins> tags, while
4729+ <ins>
4730+ hi
4731+ </ins>
4732+ should be treated as a paragraph within <ins> tags.
4733+ - Moved htmlBlock after para in list of block parsers. This ensures
4734+ that tags that can be either block or inline get parsed as inline
4735+ when appropriate.
4736+ - Modified rawHtmlInline' so that block elements aren't treated as
4737+ inline.
4738+ - Modified para parser so that paragraphs containing only HTML tags and
4739+ blank space are not allowed. Treat these as raw HTML blocks instead.
4740+
4741+ + Fixed bug wherein HTML preceding a code block could cause it to
4742+ be parsed as a paragraph. The problem is that the HTML parser
4743+ used to eat all blank space after an HTML block, including the
4744+ indentation of the code block. (Resolves Issue #39.)
4745+ - In Text.Pandoc.Readers.HTML, removed parsing of following space
4746+ from rawHtmlBlock.
4747+ - In Text.Pandoc.Readers.Markdown, modified rawHtmlBlocks so that
4748+ indentation is eaten *only* on the first line after the HTML
4749+ block. This means that in
4750+ <div>
4751+ foo
4752+ <div>
4753+ the foo won't be treated as a code block, but in
4754+ <div>
4755+
4756+ foo
4757+
4758+ </div>
4759+ it will. This seems the right approach for least surprise.
4760+
4761+ * RST reader:
4762+
4763+ + Fixed bug in parsing explicit links (resolves Issue #44).
4764+ The problem was that we were looking for inlines until a '<' character
4765+ signaled the start of the URL; so, if you hit a reference-style link,
4766+ it would keep looking til the end of the document. Fix: change
4767+ inline => (notFollowedBy (char '`') >> inline). Note that this won't
4768+ allow code inlines in links, but these aren't allowed in resT anyway.
4769+
4770+ + Cleaned up parsing of reference names in key blocks and links.
4771+ Allow nonquoted reference links to contain isolated '.', '-', '_', so
4772+ so that strings like 'a_b_' count as links.
4773+
4774+ + Removed unnecessary check for following link in str.
4775+ This is unnecessary now that link is above str in the definition of
4776+ 'inline'.
4777+
4778+ * HTML reader:
4779+
4780+ + Modified rawHtmlBlock so it parses </html> and </body> tags.
4781+ This allows these tags to be handled correctly in Markdown.
4782+ HTML reader now uses rawHtmlBlock', which excludes </html> and </body>,
4783+ since these are handled in parseHtml. (Resolves Issue #38.)
4784+
4785+ + Fixed bug (emph parser was looking for `<IT>` tag, not `<I>`).
4786+
4787+ + Don't interpret contents of style tags as markdown.
4788+ (Resolves Issue #40.)
4789+ - Added htmlStyle, analagous to htmlScript.
4790+ - Use htmlStyle in htmlBlockElement and rawHtmlInline.
4791+ - Moved "script" from the list of tags that can be either block or
4792+ inline to the list of block tags.
4793+
4794+ + Modified rawHtmlBlock to use anyHtmlBlockTag instead of anyHtmlTag
4795+ and anyHtmlEndTag. This fixes a bug in markdown parsing, where
4796+ inline tags would be included in raw HTML blocks.
4797+
4798+ + Modified anyHtmlBlockTag to test for (not inline) rather than
4799+ directly for block. This allows us to handle e.g. docbook in
4800+ the markdown reader.
4801+
4802+ * LaTeX reader: Properly recognize --parse-raw in rawLaTeXInline.
4803+ Updated LaTeX reader test to use --parse-raw.
4804+
4805+ * HTML writer:
4806+
4807+ + Modified rules for automatic HTML header identifiers to
4808+ ensure that identifiers begin with an alphabetic character.
4809+ The new rules are described in README. (Resolves Issue #33.)
4810+
4811+ + Changed handling of titles in HTML writer so you don't get
4812+ "titleprefix - " followed by nothing.
4813+
4814+ * ConTeXt writer: Use wrappers around Doc elements to ensure proper
4815+ spacing. Each block element is wrapped with either Pad or Reg.
4816+ Pad'ed elements are guaranteed to have a blank line in between.
4817+
4818+ * RST writer:
4819+
4820+ + Refactored RST writer to use a record instead of a tuple for state,
4821+ and to include options in state so it doesn't need to be passed as
4822+ a parameter.
4823+
4824+ + Use an interpreted text role to render math in restructuredText.
4825+ See http://www.american.edu/econ/itex2mml/mathhack.rst for the
4826+ strategy.
4827+
4828+ [ Recai Oktaş ]
4829+
4830+ * Debian packaging changes:
4831+
4832+ + Remove the empty 'include' directory in -dev package, which lintian
4833+ complains about.
4834+ + Bump Standarts-Version to 3.7.3.
4835+ + Use new 'Homepage:' field to specify the upstream URL on suggestion of
4836+ lintian.
4837+
4838+ -- Recai Oktaş <roktas@debian.org> Tue, 08 Jan 2008 05:13:31 +0200
4839+
4840+pandoc (0.45) unstable; urgency=low
4841+
4842+ [ John MacFarlane ]
4843+
4844+ * Simplified parsing of reference keys and notes in markdown and RST
4845+ readers: The Reference data structure from Text.Pandoc.Shared is no
4846+ longer needed, since referenceKey and noteBlock parses return strings
4847+ (as many blank lines as were occupied by the key or note) and update
4848+ state themselves. getPosition and setPosition are now used to ensure
4849+ that error messages will give the correct line number. This yields
4850+ cleaner (and slightly faster) code, with more accurate parsing error
4851+ messages.
4852+
4853+ * Added new Math inline element:
4854+
4855+ + Markdown and LaTeX readers now convert TeX math into Math elements,
4856+ not TeX.
4857+ + This allows math to be treated differently from raw TeX in output.
4858+ TeX elements are no longer printed in output formats other than
4859+ Markdown, LaTeX, and ConTeXt. But Math elements are always printed.
4860+
4861+ * New default handling of math in writers:
4862+
4863+ + New module Text.Pandoc.Readers.TeXMath exports readTeXMath, which
4864+ parses raw TeX math and outputs a string of Pandoc inlines that
4865+ tries to render it as far as possible using unicode characters,
4866+ lapsing into literal TeX when needed.
4867+ + readTeXMath is now used for default HTML output in HTML, S5, RTF,
4868+ and Docbook, if no other method for displaying math in HTML is
4869+ specified. Enclosing $'s are no longer printed by default.
4870+ + By default, math is put inside `<span class="math">`. This way it can be
4871+ distinguished from the surrounding text, e.g. put in a different
4872+ font.
4873+
4874+ * New --gladtex and --mimetex options for display of math in HTML:
4875+
4876+ + If --gladtex is specified, math is output between `<eq>` tags, so
4877+ it can be processed by gladTeX.
4878+ + If --mimetex is specified, math is put in `<img>` tags with a link
4879+ to the mimetex CGI script (or any other script that takes TeX math
4880+ as input and outputs an image). The URL of the script may be
4881+ specified, but defaults to /cgi-bin/mimetex.cgi.
4882+ + HTMLMathMethod structure in WriterOptions keeps track of how to
4883+ display math in HTML output.
4884+ + Updated README with a description of the four options for displaying
4885+ math in HTML.
4886+
4887+ * HTML reader:
4888+
4889+ + Fixed bug: parser for minimized attributes should not swallow
4890+ trailing spaces.
4891+ + Simplified HTML attribute parsing.
4892+ + Changed parsing of code blocks in HTML reader: `<code>` tag is no
4893+ longer needed. `<pre>` suffices. All HTML tags in the code block
4894+ (e.g. for syntax highlighting) are skipped, because they are not
4895+ portable to other output formats. A `<code>...</code>` block not
4896+ surrounded by `<pre>` now counts as inline HTML, not a code block.
4897+ + Remove just one leading and one trailing newline from contents of
4898+ `<pre>...</pre>` in codeBlock parser.
4899+
4900+ * Markdown reader:
4901+
4902+ + Removed support for box-style block quotes.
4903+ + Require space before title in links and references.
4904+ This fixes a bug in parsing URLs like http://silly/url(withparen).
4905+ + Improved and simplified setextHeader parser.
4906+ + Fixed logic in smart quote parsing, adding some needed 'try'
4907+ statements.
4908+ + Fixed smart quote parsing so that unicode characters 8216 and 8217
4909+ are recognized as single quotes, and 8220 and 8221 as double quotes.
4910+
4911+ * RST reader:
4912+
4913+ + Fixed bug in parsing of code blocks. Previously a full tab indent
4914+ was required, but RST allows code to be indented any amount.
4915+ Resolves Issue #27.
4916+ + Allow field lists to be indented.
4917+ + Parse the contents of field lists instead of treating as a raw string.
4918+ + Represent field lists as definition lists instead of blockquotes.
4919+ + Fixed bug in which metadata would be overridden if the document
4920+ contained multiple field lists.
4921+ + Parse fields associated with '.. image::' blocks, and use 'alt'
4922+ field, if given, for image alt and title attributes.
4923+
4924+ * LaTeX reader:
4925+
4926+ + Modified specialChar so that '"' characters are parsed.
4927+ + Fixed a bug in parsing of \[ \] math blocks (thanks to Mark Kalderon).
4928+
4929+ * HTML writer:
4930+
4931+ + Changes in handling of math (see above).
4932+ + Don't produce HTML for table of contents if there are
4933+ no headers. (This would be an empty list, which is invalid XHTML.)
4934+
4935+ * Markdown writer:
4936+
4937+ + Don't print title attribute if title is empty. (This differs from
4938+ the behavior of Markdown.pl, and agrees with PHP Markdown. But John
4939+ Gruber has indicated that he prefers this behavior.) Adjusted test
4940+ suite accordingly.
4941+ + Fixed incorrect line wrapping in paragraphs including hard line
4942+ breaks. Resolves Issue #25.
4943+ + Fixed bug in markdown writer: If an ordered list item began with
4944+ a marker greater than 3 characters in width, and the item took more
4945+ than one line, it would appear on the line after the list marker,
4946+ e.g.:
4947+
4948+ (12)
4949+ My list item.
4950+ Multiline.
4951+
4952+ Now it works as follows:
4953+
4954+ (12) My list item.
4955+ Multiline.
4956+
4957+ * RST writer
4958+
4959+ + Fixed bug in RST writer's handling of ordered lists. Previously,
4960+ list items with multiple lines would not always line up with
4961+ single-line list items. Now, list items are nested the length of
4962+ the list marker + 1. This looks better and ensures that list items
4963+ all line up. (Note that list markers are padded to the length of
4964+ the longest list marker in the series.)
4965+ + Use 3-space indent for unordered lists.
4966+ + If label for a link reference contains a colon, surround it by `
4967+ signs so it won't be interpreted as the end of the link label.
4968+
4969+ * LaTeX writer:
4970+
4971+ + Cleaner output for footnotes. Footnotes now always begin on a new
4972+ line, and the final } is on a line by itself only when it needs to
4973+ be (i.e. only when the note ends with a Verbatim environment).
4974+ + Added writer options to state, so state doesn't need to be passed as
4975+ a parameter.
4976+ + Text wrapping now provided, using wrapTeXIfNeeded.
4977+
4978+ * ConTeXt writer: many improvements for more idiomatic ConTeXt output
4979+ (thanks to Idris Samawi Hamid for suggestions).
4980+
4981+ + PrettyPrint module now used for output.
4982+ + Writer options are now in state, so they don't have to be passed as
4983+ a parameter.
4984+ + Text wrapping now provided, using wrapTeXIfNeeded.
4985+ + Better treatment of footnotes: footnotes are always on lines by
4986+ themselves, and the final } is on a line by itself only when
4987+ it needs to be (after \stoptyping).
4988+ + Use \subject, \subsubject, ... or \section, \subsection, ... for headings,
4989+ depending on whether --number-sections option is selected.
4990+ + Extra blank line inserted after \stopitemize
4991+ + Use new, "official" definition of blockquote environment. Also, use
4992+ blank line after \startblockquote to balance blank line at the end.
4993+ + Both itemized and enumerated lists are now generated using
4994+ \start-stopitemize, with appropriate options. Removed definitions
4995+ of ltxenum and ltxitem, which are no longer needed. Provided
4996+ defaults for itemized lists in the preamble. State keeps track of
4997+ ordered list level, so that when default numbering is specified,
4998+ the appropriate scheme can be used.
4999+ + Changed \useurl to \useURL.
5000+ + Changed link color from red to blue.
5001+ + Use \subsubsubsubsection etc., since these are supported
5002+ (up to at least sub x 5).
5003+
5004+ * Text.Pandoc.Shared:
5005+
5006+ + Save and restore position in parseFromString, so that accurate
5007+ error messages can be given.
5008+ + Improved efficiency of romanNumeral parser.
5009+ + Added wrappedTeX and wrapTeXIfNeeded functions. These ensure
5010+ that footnotes occur on lines by themselves (to make them
5011+ easier to see and move) and do not screw up line wrapping.
5012+
5013+ * Text.Pandoc.UTF8: modified fromUTF8 to strip out the BOM
5014+ if present. Windows Notepad and other applications insert a
5015+ BOM at the beginning of a UTF8 file.
5016+
5017+ * Main.hs (tabFilter): Treat '\r' at end of line as newline (in
5018+ addition to "\r\n" and '\n').
5019+
5020+ * Added a writer option for wrapped text and a command-line option
5021+ '--no-wrap', which disables text wrapping and minimizes whitespace
5022+ in HTML. (Resolves Issue #26.)
5023+
5024+ + Added support for '--no-wrap' to Main.hs.
5025+ + Added wrapIfNeeded function to Text.Pandoc.Shared.
5026+ + Use wrapIfNeeded instead of wrapped in the RST, Man, Docbook, and
5027+ Markdown writers.
5028+ + Added render and renderFragment helpers to HTML writer.
5029+
5030+ * Modified html2markdown to run tidy only if the HTML cannot be
5031+ parsed. Previously html2markdown piped all input through tidy
5032+ before passing it to pandoc. This caused problems on certain pages
5033+ (e.g. http://daringfireball.com/markdown) which have well-formed
5034+ XHTML that causes tidy to choke. The solution is to pipe through
5035+ tidy only if pandoc cannot parse the input by itself. This means
5036+ that a temp file is now always used, even when input comes from a
5037+ local file or standard input.
5038+
5039+ * Removed 'version' constant from Main.hs; added 'pandocVersion' to
5040+ Text.Pandoc library.
5041+
5042+ * pandoc.cabal:
5043+
5044+ + Modified to work with GHC 6.8 and Cabal configurations. (For GHC
5045+ 6.8, pretty and containers must be added to Build-Depends, and it
5046+ is desirable to use the -O2 compiler option.) Cabal configurations
5047+ allows one to select options depending on the compiler version.
5048+ For GHC 6.6, the splitBase option can be disabled.
5049+ + pandoc.cabal.ghc66 is provided for users with older versions of
5050+ Cabal, which do not support configurations.
5051+ + Use Ghc-Prof-Options to ensure that '-auto-all' is used when
5052+ '--enable-(executable|library)-profiling' is specified. Updated
5053+ PROFILING instructions accordingly.
5054+
5055+ * Makefile:
5056+
5057+ + Makefile now checks GHC version. If GHC is 6.6, pandoc.cabal.ghc66
5058+ is copied to pandoc.cabal, and the old pandoc.cabal is copied
5059+ to pandoc.cabal.orig. Otherwise, pandoc.cabal is copied to
5060+ pandoc.cabal.orig but otherwise unmodified. This way, the Makefile
5061+ will work properly with either GHC 6.6 or 6.8.
5062+ + Changed BUILDCONF to point to dist/setup-config, not .setup-config.
5063+ This is where current versions of Cabal put it.
5064+ + Added $(BUILDCMD) target, so setup doesn't get compiled every time.
5065+ + Removed dependency of templates on ./templates, which is circular
5066+ now that templates is a subdirectory of the top-level.
5067+
5068+ * MacPorts Portfile:
5069+
5070+ + Modified to install the pandoc library in addition to programs.
5071+ + Installation must be done manually rather than using Makefile's
5072+ install-all.
5073+ + Note that the library must be registered in the activate phase,
5074+ after the library files have been copied out of the destroot.
5075+ Cabal generates a 'register.sh' script that will do this.
5076+
5077+ * debian/control: Added libghc6-network-dev, libghc6-xhtml-dev, and
5078+ libghc6-mtl-dev as dependencies for libghc6-pandoc-dev.
5079+ Closes: #445235
5080+
5081+ * debian/rules: Converted to UTF-8.
5082+
5083+ * Changed pandoc home page to http://johnmacfarlane.net/pandoc/.
5084+
5085+ * Updated ASCIIMathML.js to latest version.
5086+
5087+ * Directory structure:
5088+
5089+ + Moved everything from src into the top-level directory.
5090+ + Changed references to source directory in Makefile and
5091+ pandoc.cabal.*.
5092+ + Moved ASCIIMathML.js, headers, and ui into templates directory.
5093+ + Modified fillTemplates.pl to reflect new paths.
5094+
5095+ [ Recai Oktaş ]
5096+
5097+ * Makefile: Fixed the issue of having two copies of the library
5098+ documentation under some usage scenarios.
5099+
5100+ * Replaced 'ghc' with '$(GHC)' in Makefile, and made GHC
5101+ and GHC_PKG configurable through the environment, to support
5102+ unusual ghc installations. For example:
5103+ GHC=/opt/ghc/bin/ghc GHC_PKG=/opt/ghc/bin/ghc-pkg make
5104+
5105+ -- Recai Oktaş <roktas@debian.org> Sun, 07 Oct 2007 20:51:43 +0300
5106+
5107+pandoc (0.44) unstable; urgency=low
5108+
5109+ [ John MacFarlane ]
5110+
5111+ * Fixed bug in HTML writer: when --toc was used, anchors were put around
5112+ headers, which is invalid XHTML (block content within inline element).
5113+ Now the anchors are put inside the header tags. Resolves Issue #23.
5114+
5115+ * Added xmlns attribute to html element in html writer tests.
5116+ This attribute is added by more recent versions of the
5117+ xhtml library (>= 3000), and is required for valid XHTML.
5118+
5119+ [ Recai Oktaş ]
5120+
5121+ * On configure, compile 'Setup.hs' to 'setup' and use 'setup' as the build
5122+ command instead of 'runhaskell', which, on some platforms (such as s390,
5123+ alpha, m68k), throws the following error:
5124+
5125+ runhaskell Setup.hs configure --prefix=/usr
5126+ ghc-6.6.1: not built for interactive use
5127+
5128+ This causes a serious FTBFS bug. Closes: #440668.
5129+
5130+ -- Recai Oktaş <roktas@debian.org> Mon, 03 Sep 2007 18:24:02 +0300
5131+
5132+pandoc (0.43) unstable; urgency=low
5133+
5134+ [ John MacFarlane ]
5135+
5136+ * The focus of this release is performance. The markdown parser
5137+ is about five times faster than in 0.42, based on benchmarks
5138+ with the TextMate manual.
5139+
5140+ * Main.hs: Replaced CRFilter and tabFilter with single function
5141+ tabFilter, which operates on the whole string rather than breaking
5142+ it into lines, and handles dos-style line-endings as well as tabs.
5143+
5144+ * Added separate LaTeX reader and native reader tests; removed
5145+ round-trip tests.
5146+
5147+ * Text.Pandoc.Shared:
5148+
5149+ + Removed tabsToSpaces and tabsInLine (they were used only in Main.hs.)
5150+ + General code cleanup (to elimante warnings when compiling with -Wall.)
5151+ + Added 'wrapped' function, which helps wrap text into paragraphs,
5152+ using the prettyprinting library.
5153+ + Rewrote charsInBalanced and charsInBalanced'.
5154+ - Documented restriction: open and close must be distinct characters.
5155+ - Rearranged options for greater efficiency.
5156+ - Bug fix: Changed inner call to charsInBalanced inside
5157+ charsInBalanced' to charsInBalanced'.
5158+ + anyLine now requires that the line end with a newline (not eof).
5159+ This is a harmless assumption, since we always add newlines to the
5160+ end of a block before parsing with anyLine, and it yields a 10% speed
5161+ boost.
5162+ + Removed unnecessary 'try' in anyLine.
5163+ + Removed unneeded 'try' from romanNumeral parser.
5164+ + Use notFollowedBy instead of notFollowedBy' in charsInBalanced.
5165+ + Removed unneeded 'try' in parseFromString.
5166+ + Removed unneeded 'try' from stringAnyCase. (Now it behaves
5167+ like 'string'.)
5168+ + Changed definition of 'enclosed' in Text.Pandoc.Shared so that
5169+ 'try' is not automatically applied to the 'end' parser. Added
5170+ 'try' in calls to 'enclosed' where needed. Slight speed increase.
5171+
5172+ * Writers:
5173+
5174+ + Replaced individual wrapping routines in RST, Man, and Markdown
5175+ writers with 'wrapped' from Text.Pandoc.Shared.
5176+ + Rewrote LaTeX writer to use the prettyprinting library,
5177+ so we get word wrapping, etc.
5178+ + Modified latex writer tests for new latex writer using prettyprinter.
5179+ + Fixed bug in LaTeX writer: autolinks would not cause
5180+ '\usepackage{url}' to be put in the document header. Also, changes
5181+ to state in enumerated list items would be overwritten.
5182+ + In Markdown writer, escape paragraphs that begin with ordered list
5183+ markers, so they don't get interpreted as ordered lists.
5184+
5185+ * Text.Pandoc.Reades.LaTeX:
5186+
5187+ + Fixed bug in LaTeX reader, which wrongly assumed that the roman
5188+ numeral after "enum" in "setcounter" would consist entirely of
5189+ "i"s. 'enumiv' is legitimate.
5190+ + LaTeX command and environment names can't contain numbers.
5191+ + Rearranged order of parsers in inline for slight speed improvement.
5192+ + Added '`' to special characters and 'unescapedChar'.
5193+
5194+ * Text.Pandoc.Readers.RST:
5195+
5196+ + Removed unneeded try's in RST reader; also minor code cleanup.
5197+ + Removed tabchar.
5198+ + Rearranged parsers in inline (doubled speed).
5199+
5200+ * Text.Pandoc.Readers.Markdown:
5201+
5202+ + Skip notes parsing if running in strict mode. (This yields a nice
5203+ speed improvement in strict mode.)
5204+ + Simplify autolink parsing code, using Network.URI to test for
5205+ URIs. Added dependency on network library to debian/control and
5206+ pandoc.cabal.
5207+ + More perspicuous definition of nonindentSpaces.
5208+ + Removed unneeded 'try' in 'rawLine'.
5209+ + Combined linebreak and whitespace into a new whitespace parser, to
5210+ avoid unnecessary reparsing of space characters.
5211+ + Removed unnecessary 'try' in 'codeBlock', 'ellipses', 'noteMarker',
5212+ 'multilineRow', 'dashedLine', 'rawHtmlBlocks'.
5213+ + Use lookAhead in parsers for setext headers and definition lists
5214+ to see if the next line begins appropriately; if not, don't waste
5215+ any more time parsing.
5216+ + Don't require blank lines after code block. (It's sufficient to
5217+ end code block with a nonindented line.)
5218+ + Changed definition of 'emph': italics with '_' must not
5219+ be followed by an alphanumeric character. This is to help
5220+ prevent interpretation of e.g. `[LC_TYPE]: my_type` as
5221+ `[LC<em>TYPE]:my</em>type`.
5222+ + Improved Markdown.pl-compatibility in referenceLink: the two parts
5223+ of a reference-style link may be separated by one space, but not
5224+ more... [a] [link], [not] [a link].
5225+ + Fixed markdown inline code parsing so it better accords with
5226+ Markdown.pl: the marker for the end of the code section is a clump
5227+ of the same number of `'s with which the section began, followed
5228+ by a non-` character. So, for example,
5229+ ` h ``` i ` -> `<code>h ``` i</code>`.
5230+ + Split 'title' into 'linkTitle' and 'referenceTitle', since the
5231+ rules are slightly different.
5232+ + Rewrote 'para' for greater efficiency.
5233+ + Rewrote link parsers for greater efficiency.
5234+ + Removed redundant 'referenceLink' in definition of inline (it's
5235+ already in 'link').
5236+ + Refactored escapeChar so it doesn't need 'try'.
5237+ + Refactored hrule for performance in Markdown reader.
5238+ + More intelligent rearranging of 'inline' so that most frequently
5239+ used parsers are tried first.
5240+ + Removed tabchar parser, as whitespace handles tabs anyway.
5241+
5242+ * Text.Pandoc.CharacterReferences:
5243+
5244+ + Refactored.
5245+ + Removed unnecessary 'try's for a speed improvement.
5246+ + Removed unnecessary '&' and ';' from the entity table.
5247+
5248+ * Build process:
5249+
5250+ + Makefile: Get VERSION from cabal file, not Main.hs.
5251+ + Modified MacPorts Portfile:
5252+ - Depend on haddock
5253+ - Build and install libraries and library documentation in
5254+ addition to pandoc executable
5255+ - Added template item for md5 sum in Portfile.in.
5256+ - Incorporated changes from MacPorts repository (r28278).
5257+ + FreeBSD port: Don't try to generate distinfo in Makefile.
5258+ It can be made using 'make makesum' in FreeBSD.
5259+ + Make both freebsd and macports targets depend on tarball.
5260+
5261+ * Website and documentation:
5262+
5263+ + Updated INSTALL instructions.
5264+ + Added pandocwiki demo to website.
5265+ + Removed local references to Portfile, since pandoc is now in the
5266+ MacPorts repository.
5267+
5268+ -- Recai Oktaş <roktas@debian.org> Sun, 02 Sep 2007 15:50:11 +0300
5269+
5270+pandoc (0.42) unstable; urgency=low
5271+
5272+ [ John MacFarlane ]
5273+
5274+ * Main.hs: Use utf8 conversion on the extra files loaded with
5275+ the -H, -C, -B, and -A options. This fixes problems with unicode
5276+ characters in these files.
5277+
5278+ * Exposed Text.Pandoc.ASCIIMathML, since it is imported in
5279+ Text.Pandoc.Readers.HTML and without it we get a linking error when
5280+ using the library.
5281+
5282+ * Markdown reader:
5283+
5284+ + Added new rule for enhanced markdown ordered lists: if the list
5285+ marker is a capital letter followed by a period (including a
5286+ single-letter capital roman numeral), then it must be followed by
5287+ at least two spaces. The point of this is to avoid accidentally
5288+ treating people's initials as list markers: a paragraph might begin,
5289+ "B. Russell was an English philosopher," and this shouldn't be
5290+ treated as a list. Documented change in README.
5291+ + Blocks that start with "p. " and a digit are no longer treated
5292+ as ordered lists (it's a page number).
5293+ + Added a needed 'try' to listItem.
5294+ + Removed check for a following setext header in endline.
5295+ A full test is too inefficient (doubles benchmark time), and the
5296+ substitute we had before is not 100% accurate.
5297+ + Don't use Code elements for autolinks if --strict specified.
5298+
5299+ * LaTeX writer: When a footnote ends with a Verbatim environment, the
5300+ close } of the footnote cannot occur on the same line or an error occurs.
5301+ Fixed this by adding a newline before the closing } of every footnote.
5302+
5303+ * HTML writer:
5304+ + Removed incorrect "{}" around style information in HTML tables.
5305+ Column widths now work properly in HTML.
5306+ + If --strict option is specified (and --toc is not), don't include
5307+ identifiers in headers, for better Markdown compatibility.
5308+
5309+ * Build process:
5310+
5311+ + Separated $(web_dest) and website targets.
5312+ + In website, index.txt is now constructed from template index.txt.in.
5313+ + Added freebsd target to Markefile. This creates the freebsd Makefile
5314+ from Makefile.in, and creates distinfo. Removed Makefile and distinfo
5315+ from the repository.
5316+ + Added macport target to Makefile. Portfile is built from template
5317+ Portfile.in.
5318+ + Removed OSX package targets. (Too many difficulties involving
5319+ dependencies on dynamic libraries.)
5320+ + More complete INSTALL instructions for all architectures.
5321+
5322+ * Website:
5323+ + Added a programming demo, pandocwiki.
5324+
5325+ [ Recai Oktaş ]
5326+
5327+ * Do not forget to close pandoc's ITP. Closes: #391666
5328+
5329+ -- Recai Oktaş <roktas@debian.org> Sun, 26 Aug 2007 22:51:32 +0300
5330+
5331+pandoc (0.41) unstable; urgency=low
5332+
5333+ [ John MacFarlane ]
5334+
5335+ * Fixed bugs in HTML reader:
5336+ + Skip material at end *only if* `</html>` is present (previously,
5337+ only part of the document would be parsed if an error was
5338+ found; now a proper error message is given).
5339+ + Added new constant eitherBlockOrInline with elements that may
5340+ count either as block-level or as inline. Modified isInline and
5341+ isBlock to take this into account.
5342+ + Modified rawHtmlBlock to accept any tag (even an inline tag):
5343+ this is innocuous, because rawHtmlBlock is tried only if a regular
5344+ inline element can't be parsed.
5345+ + Added a necessary 'try' in definition of 'para'.
5346+
5347+ * Fixed bug in markdown ordered list parsing. The problem was that
5348+ anyOrderedListStart did not check for a space following the
5349+ ordered list marker. So in 'A.B. 2007' the parser would be
5350+ expecting a list item, but would not find one, causing an error.
5351+ Fixed a similar bug in the RST reader. Resolves Issue #22.
5352+
5353+ * Refactored RST and Markdown readers using parseFromString.
5354+
5355+ * LaTeX reader will now skip anything after \end{document}.
5356+
5357+ * Fixed blockquote output in markdown writer: previously, block
5358+ quotes in indented contexts would be indented only in the first
5359+ line.
5360+
5361+ * Added note to INSTALL about variations in versions of the xhtml
5362+ library that can lead to failed tests (thanks to Leif LeBaron).
5363+
5364+ -- Recai Oktaş <roktas@debian.org> Sun, 19 Aug 2007 23:26:07 +0300
5365+
5366+pandoc (0.4) unstable; urgency=low
5367+
5368+ [ John MacFarlane ]
5369+
5370+ * Added two new output formats: groff man pages and ConTeXt. By
5371+ default, output files with extensions ".ctx" and ".context" are
5372+ assumed to be ConTeXt, and output files with single-digit extensions
5373+ are assumed to be man pages.
5374+
5375+ * Enhanced ordered lists (documented in README, under Lists):
5376+ + The OrderedList block element now stores information about
5377+ list number style, list number delimiter, and starting number.
5378+ + The readers parse this information when possible.
5379+ + The writers use this information to style ordered lists.
5380+ + The enhancement can be disabled using the --strict option.
5381+
5382+ * Added support for tables (with a new Table block element). Two kinds
5383+ of tables are supported: a simple table with one-line rows, and a
5384+ more complex variety with multiline rows. All output formats are
5385+ supported, but only markdown tables are parsed at the moment. The
5386+ syntax is documented in README.
5387+
5388+ * Added support for definition lists (with a new DefinitionList block
5389+ element). All output and input formats are supported. The syntax is
5390+ documented in README.
5391+
5392+ * Added support for superscripts and subscripts (with new Superscript
5393+ and Subscript inline elements). All input and output
5394+ formats. The syntax is documented in README.
5395+
5396+ * Added support for strikeout (with a new Strikeout inline element).
5397+ All input and output formats are supported. Thanks to Bradley Kuhn,
5398+ who contributed a patch. The syntax is documented in README. Resolves
5399+ Issue #18.
5400+
5401+ * Added a --toc|--table-of-contents option. This causes an automatically
5402+ generated table of contents (or an instruction that creates one) to
5403+ be inserted at the beginning of the document. Not supported in S5,
5404+ DocBook, or man page writers.
5405+
5406+ * Modified the -m|--asciimathml option:
5407+
5408+ + If an optional URL argument is provided, a link is inserted
5409+ instead of the contents of the ASCIIMathML.js script.
5410+ + Nothing is inserted unless the document actually contains
5411+ LaTeX math.
5412+
5413+ * Removed Blank block element as unnecessary.
5414+
5415+ * Removed Key and Note blocks from the Pandoc data structure. All
5416+ links are now stored as explicit links, and note contents are
5417+ stored with the (inline) notes.
5418+
5419+ + All link Targets are now explicit (URL, title) pairs; there
5420+ is no longer a 'Ref' target.
5421+ + Markdown and RST parsers now need to extract data from key and
5422+ note blocks and insert them into the relevant inline elements.
5423+ Other parsers have been simplified, since there is no longer any need
5424+ to construct separate key and note blocks.
5425+ + Markdown, RST, and HTML writers need to construct lists of
5426+ notes; Markdown and RST writers need to construct lists of link
5427+ references (when the --reference-links option is specified); and
5428+ the RST writer needs to construct a list of image substitution
5429+ references. All writers have been rewritten to use the State monad
5430+ when state is required.
5431+ + Several functions (generateReference, keyTable,
5432+ replaceReferenceLinks, replaceRefLinksBlockList, and some auxiliaries
5433+ used by them) have been removed from Text.Pandoc.Shared, since
5434+ they are no longer needed. New functions and data structures
5435+ (Reference, isNoteBlock, isKeyBlock, isLineClump) have been
5436+ added. The functions inTags, selfClosingTag, inTagsSimple, and
5437+ inTagsIndented have been moved to the DocBook writer, since that
5438+ is now the only module that uses them. NoteTable is now exported
5439+ in Text.Pandoc.Shared.
5440+ + Added stateKeys and stateNotes to ParserState; removed stateKeyBlocks,
5441+ stateKeysUsed, stateNoteBlocks, stateNoteIdentifiers, stateInlineLinks.
5442+ + Added writerNotes and writerReferenceLinks to WriterOptions.
5443+
5444+ * Added Text.Pandoc module that exports basic readers, writers,
5445+ definitions, and utility functions. This should export everything
5446+ needed for most uses of Pandoc libraries. The haddock documentation
5447+ includes a short example program.
5448+
5449+ * Text.Pandoc.ASCIIMathML is no longer an exported module.
5450+
5451+ * Added Text.Pandoc.Blocks module to help in printing markdown
5452+ and RST tables. This module provides functions for working with
5453+ fixed-width blocks of text--e.g., placing them side by side, as
5454+ in a table row.
5455+
5456+ * Refactored to avoid reliance on Haskell's Text.Regex library, which
5457+ (a) is slow, and (b) does not properly handle unicode. This fixed
5458+ some strange bugs, e.g. in parsing S-cedilla, and improved performance.
5459+
5460+ + Replaced 'gsub' with a general list function 'substitute'
5461+ that does not rely on Text.Regex.
5462+ + Rewrote extractTagType in HTML reader so that it doesn't use
5463+ regexs.
5464+ + In Markdown reader, replaced email regex test with a custom email
5465+ autolink parser (autoLinkEmail). Also replaced selfClosingTag regex
5466+ with a custom function isSelfClosingTag.
5467+ + Modified Docbook writer so that it doesn't rely on Text.Regex for
5468+ detecting 'mailto' links.
5469+ + Removed escapePreservingRegex and reamped entity-handling
5470+ functions in Text.Pandoc.Shared and Text.Pandoc.CharacterReferences to
5471+ avoid reliance on Text.Regex (see below on character reference
5472+ handling changes).
5473+
5474+ * Renamed Text.Pandoc.Entities as Text.Pandoc.CharacterReferences.
5475+
5476+ * Changed handling of XML entities. Entities are now parsed (and unicode
5477+ characters returned) in the Markdown and HTML readers, rather than being
5478+ handled in the writers. In HTML and Docbook writers, UTF-8 is now used
5479+ instead of entities for characters above 128. This makes the HTML and
5480+ DocBook output much more readable and more easily editable.
5481+
5482+ + Removed sgmlHexEntity, sgmlDecimalEntity, sgmlNamedEntity, and
5483+ sgmlCharacterEntity regexes from Text.Pandoc.Shared.
5484+ + Renamed escapeSGMLChar to escapeCharForXML. Added escapeStringForXML.
5485+ Moved both functions to Text.Pandoc.Writers.Docbook.
5486+ + Added characterReference parser to Text.Pandoc.CharacterReferences.
5487+ This parses a string and return a unicode character.
5488+ + Rewrote decodeCharacterReferences to use the new parser instead of
5489+ Text.Regex.
5490+ + Added new charRef parser for Markdown and HTML, which replaces the
5491+ old 'entity' parser. Added '&' as a special character in Markdown reader.
5492+ + Modified HTML and Markdown readers to call decodeEntities on all raw
5493+ strings (e.g. authors, dates, link titles), to ensure that no
5494+ unprocessed entities are included in the native representation of
5495+ the document. (In the HTML reader, most of this work is done by a
5496+ change in extractAttributeName.)
5497+ + In XML and Markdown output, escape unicode nonbreaking space as ' ',
5498+ since a unicode non-breaking space is impossible to distinguish visually
5499+ from a regular space. (Resolves Issue #3.)
5500+ + Removed encodeEntitiesNumerical.
5501+ + Use Data.Map for entityTable and (new) reverseEntityTable, for a
5502+ slight performance boost over the old association list.
5503+ + Removed unneeded decodeEntities from 'str' parser in HTML and
5504+ Markdown readers.
5505+
5506+ * Text.Pandoc.UTF8: Renamed encodeUTF8 to toUTF8, decodeUTF8 to
5507+ fromUTF8, for clarity.
5508+
5509+ * Replaced old haskell98 module names replaced by hierarchical module
5510+ names, e.g. List by Data.List. Removed haskell98 from dependencies
5511+ in pandoc.cabal, and added mtl (needed for state monad). Substituted
5512+ xhtml for html.
5513+
5514+ * Refactored and cleaned up character escaping in writers, using
5515+ backslashEscapes and escapeStringUsing functions.
5516+
5517+ * Instead of adding "\n\n" to the end of an input string in Main.hs,
5518+ this is now done in the readers. This makes the libraries behave
5519+ the way you'd expect from the pandoc program. Resolves Issue #10.
5520+
5521+ * URLs and email addresses in autolinks are now typeset as Code.
5522+
5523+ * In Main.hs, changed putStr to putStrLn -- mainly because MacOS X
5524+ doesn't display the whole output unless there's a line ending.
5525+
5526+ * Major code cleanup in all modules, for greater consistency, concision,
5527+ and readability.
5528+
5529+ * HTML reader:
5530+
5531+ + Fixed several bugs (extractTagType, attribute parsing).
5532+ + Remove Null blocks in lists of blocks when possible.
5533+ + Allow HTML comments as raw HTML inline.
5534+
5535+ * Markdown reader:
5536+
5537+ + Ordered list items may no longer begin with uppercase letters, or
5538+ letters greater than 'n'. (This prevents first initials and page
5539+ reference, e.g. 'p. 400', from being parsed as beginning lists.)
5540+ Also, numbers beginning list items may no longer end with ')',
5541+ which is now allowed only after letters. Note: These changes
5542+ may cause documents to be parsed differently. Users should take
5543+ care in upgrading.
5544+ + Changed autoLink parsing to conform better to Markdown.pl's
5545+ behavior. `<google.com>` is not treated as a link, but
5546+ `<http://google.com>`, `<ftp://google.com>`, and
5547+ `<mailto:google@google.com>` are.
5548+ + Cleaned up handling of embedded quotes in link titles. Now these are
5549+ stored as a '"' character, not as '"'.
5550+ + Use lookAhead parser for the 'first pass' (looking for reference keys),
5551+ instead of parsing normally, then using setInput to reset input. This
5552+ yields a slight performance boost.
5553+ + Fixed several bugs in smart quote recognition.
5554+ + Fixed bug in indentSpaces (which didn't properly handle
5555+ cases with mixed spaces and tabs).
5556+ + Consolidated 'text', 'special', and 'inline' into 'inline'.
5557+ + Fixed bug which allowed URL and title to be separated by multiple blank
5558+ lines in links and reference keys. They can be on separate lines but
5559+ can't have blank lines between them.
5560+ + Correctly handle bracketed text inside inline footnotes and links,using
5561+ new function inlinesInBalanced. Resolves Issue #14.
5562+ + Fixed bug in footnotes: links in footnotes were not being
5563+ processed. Solution: three-stage parse. First, get all the
5564+ reference keys and add information to state. Next, get all the
5565+ notes and add information to state. (Reference keys may be needed
5566+ at this stage.) Finally, parse everything else.
5567+ + Replaced named constants like 'emphStart' with literals.
5568+ + Removed an extra occurance of escapedChar in definition of inline.
5569+
5570+ * RST reader:
5571+
5572+ + Allow the URI in a RST hyperlink target to start on the line
5573+ after the reference key.
5574+ + Added 'try' in front of 'string', where needed, or used a different
5575+ parser. This fixes a bug where ````` would not be correctly parsed as
5576+ a verbatim `.
5577+ + Fixed slow performance in parsing inline literals in RST reader. The
5578+ problem was that ``#`` was seen by 'inline' as a potential link or image.
5579+ Fix: inserted 'notFollowedBy (char '`')' in link parsers.
5580+ Resolves Issue #8.
5581+ + Use lookAhead instead of getInput/setInput in RST reader. Removed
5582+ unneeded getState call, since lookAhead automatically saves and
5583+ restores the parser state.
5584+ + Allow hyperlink target URIs to be split over multiple lines, and
5585+ to start on the line after the reference. Resolves Issue #7.
5586+ + Fixed handling of autolinks.
5587+
5588+ * LaTeX reader:
5589+
5590+ + Replaced 'choice [(try (string ...), ...]' idiom with 'oneOfStrings',
5591+ for clarity.
5592+ + Added clauses for tilde and caret. Tilde is \ensuremath{\sim}, and
5593+ caret is \^{}, not \^ as before.
5594+ + Added parsing for \url.
5595+ + Parse \texttt{} as code, provided there's nothing fancy inside.
5596+
5597+ * HTML writer:
5598+
5599+ + Modified HTML writer to use the Text.XHtml library. This results
5600+ in cleaner, faster code, and it makes it easier to use Pandoc in
5601+ other projects, like wikis, which use Text.XHtml. Two functions are
5602+ now provided, writeHtml and writeHtmlString: the former outputs an
5603+ Html structure, the latter a rendered string. The S5 writer is also
5604+ changed, in parallel ways (writeS5, writeS5String).
5605+ + The Html header is now written programmatically, so it has been
5606+ removed from the 'headers' directory. The S5 header is still
5607+ needed, but the doctype and some of the meta declarations have
5608+ been removed, since they are written programatically. This change
5609+ introduces a new dependency on the xhtml package.
5610+ + Fixed two bugs in email obfuscation involving improper escaping
5611+ of '&' in the `<noscript>` section and in `--strict` mode. Resolves
5612+ Issue #9.
5613+ + Fixed another bug in email obfuscation: If the text to be obfuscated
5614+ contains an entity, this needs to be decoded before obfuscation.
5615+ Thanks to thsutton for the patch. Resolves Issue #15.
5616+ + Changed the way the backlink is displayed in HTML footnotes.
5617+ Instead of appearing on a line by itself, it now generally
5618+ appears on the last line of the note. (Exception: when the
5619+ note does not end with a Plain or Para block.) This saves space
5620+ and looks better.
5621+ + Added automatic unique identifiers to headers:
5622+ - The identifier is derived from the header via a scheme
5623+ documented in README.
5624+ - WriterState now includes a list of header identifiers and a table
5625+ of contents in addition to notes.
5626+ - The function uniqueIdentifiers creates a list of unique identifiers
5627+ from a list of inline lists (e.g. headers).
5628+ - This list is part of WriterState and gets consumed by blockToHtml
5629+ each time a header is encountered.
5630+ + Include CSS for .strikethrough class in header only if strikethrough
5631+ text appears in the document.
5632+ + If the 'strict' option is specified, elements that do not appear in
5633+ standard markdown (like definition lists) are passed through as
5634+ raw HTML.
5635+ + Simplified treatment of autolinks, using pattern matching instead of
5636+ conditionals.
5637+
5638+ * Markdown writer:
5639+
5640+ + Links in markdown output are now printed as inline links by default,
5641+ rather than reference links. A --reference-links option has been added
5642+ that forces links to be printed as reference links. Resolves Issue #4.
5643+ + Use autolinks when possible. Instead of `[site.com](site.com)`,
5644+ use `<site.com>`.
5645+
5646+ * LaTeX writer:
5647+
5648+ + Rewrote to use the State monad. The preamble now includes only those
5649+ packages that are actually required, given the document's content.
5650+ Thus, for example, if strikeout is not used, ulem is not required.
5651+ Modified LaTeXHeader accordingly.
5652+ + Modified LaTeX writer to insert '\,' between consecutive quotes.
5653+ + Removed unused function tableRowColumnWidths.
5654+ + Simplified code for escaping special characters.
5655+ + Leave extra blank line after \maketitle.
5656+ + Include empty '\author{}' when no author specified to avoid LaTeX
5657+ errors.
5658+ + Include fancyvrb code in header only if needed -- that is, only
5659+ if there is actually code in a footnote.
5660+ + Use \url{} for autolinks.
5661+ + Include [mathletters] option in ucs package, so that basic unicode
5662+ Greek letters will work correctly.
5663+
5664+ * RST writer: Force blank line before lists, so that sublists will
5665+ be handled correctly.
5666+
5667+ * Docbook writer: Fixed a bug: email links with text, like
5668+ [foo](me@bar.baz), were being incorrectly treated as autolinks.
5669+
5670+ * Removed Text.ParserCombinators.Pandoc and moved all its functions to
5671+ Text.Pandoc.Shared.
5672+
5673+ * Text.Pandoc.Shared:
5674+
5675+ + Added defaultWriterOptions.
5676+ + Added writerTableOfContents to WriterOptions.
5677+ + Added writerIgnoreNotes option to WriterOptions. This is needed
5678+ for processing header blocks for a table of contents, since notes on
5679+ headers should not appear in the TOC.
5680+ + Added prettyprinting for native Table format.
5681+ + Removed some unneeded imports.
5682+ + Moved escape and nullBlock parsers from
5683+ Text.ParserCombinators.Pandoc, since the latter is for
5684+ general-purpose parsers that don't depend on Text.Pandoc.Definition.
5685+ + Moved isHeaderBlock from Text.Pandoc.Writers.HTML.
5686+ + Moved Element, headerAtLeast, and hierarchicalize from Docbook
5687+ writer, because HTML writer now uses these in constructing a table
5688+ of contents.
5689+ + Added clauses for new inline elements (Strikeout, Superscript,
5690+ Subscript) to refsMatch.
5691+ + Removed backslashEscape; added new functions escapeStringUsing and
5692+ backslashEscapes.
5693+ + Moved failIfStrict from markdown reader, since it is now used also
5694+ by the HTML reader.
5695+ + Added a 'try' to the definition of indentSpaces.
5696+ + In definition of 'reference', added check to make sure it's not a note
5697+ reference.
5698+ + Added functions: camelCaseToHyphenated, toRomanNumeral,
5699+ anyOrderedListMarker, orderedListmarker, orderedListMarkers,
5700+ charsInBalanced', withHorizDisplacement, romanNumeral
5701+ + Fixed a bug in the anyLine parser. Previously it would parse an empty
5702+ string "", but it should fail on an empty string, or we get an error
5703+ when it is used inside "many" combinators.
5704+ + Removed followedBy' parser, replacing it with the lookAhead parser from
5705+ Parsec.
5706+ + Added some needed 'try's before multicharacter parsers, especially in
5707+ 'option' contexts.
5708+ + Removed the 'try' from the 'end' parser in 'enclosed', so that
5709+ 'enclosed' behaves like 'option', 'manyTill', etc.
5710+ + Added lineClump parser, which parses a raw line block up to and
5711+ including any following blank lines.
5712+ + Renamed parseFromStr to parseFromString.
5713+ + Added a 'try' to the 'end' parser in 'enclosed'. This makes errors in
5714+ the use of 'enclosed' less likely. Removed some now-unnecessary 'try's
5715+ in calling code.
5716+ + Removed unneeded 'try' in blanklines.
5717+ + Removed endsWith function and rewrote calling functions to use
5718+ isSuffixOf instead.
5719+ + Added >>~ combinator.
5720+ + Fixed bug in normalizeSpaces: Space:Str "":Space should compress to
5721+ Space.
5722+
5723+ * Refactored runtests.pl; added separate tests for tables.
5724+
5725+ * Shell scripts:
5726+
5727+ + Added -asxhtml flag to tidy in html2markdown. This will
5728+ perhaps help the parser, which expects closing tags.
5729+ + Modified markdown2pdf to run pdflatex a second time if --toc or
5730+ --table-of-contents was specified; otherwise the table of
5731+ contents won't appear.
5732+ + Modified markdown2pdf to print a helpful message if the 'ulem'
5733+ LaTeX package is required and not found.
5734+
5735+ * Changes to build process:
5736+
5737+ + Dropped support for compilation with GHC 6.4. GHC 6.6 or higher
5738+ is now required.
5739+ + Removed cabalize and Pandoc.cabal.in. The repository now contains
5740+ pandoc.cabal itself.
5741+ + Pandoc.cabal has been changed to pandoc.cabal, because HackageDB
5742+ likes the cabal file to have the same name as the tarball.
5743+ + Expanded and revised the package description in pandoc.cabal.
5744+ Revised the package synopsis.
5745+ + The tarball built by 'make tarball' now contains files built from
5746+ templates (including man pages and shell scripts), so pandoc can
5747+ be built directly using Cabal tools, without preprocessing.
5748+ + Executable binaries are now stripped before installing.
5749+ + Man pages are now generated from markdown sources, using pandoc's
5750+ man page writer.
5751+ + Use HTML version of README (instead of RTF) in Mac OS X installer.
5752+ + Instead of testing for the existence of a pandoc symlink in build-exec,
5753+ use ln -f.
5754+
5755+ * Documentation:
5756+
5757+ + Updated README and man pages with information on new features.
5758+ + Updated INSTALL instructions with some useful clarifications and
5759+ links.
5760+ + Updated web content.
5761+
5762+ * Added FreeBSD port.
5763+
5764+ [ Recai Oktaş ]
5765+
5766+ * debian/control:
5767+
5768+ + Changed pandoc's Build-Depends to include libghc6-mtl-dev and
5769+ libghc6-xhtml-dev. Removed libghc6-html-dev.
5770+ + Suggest texlive-latex-recommended | tetex-extra instead of
5771+ tetex-bin. This brings in fancyvrb and unicode support.
5772+
5773+ -- Recai Oktaş <roktas@debian.org> Tue, 16 Jan 2007 00:37:21 +0200
5774+
5775+pandoc (0.3) unstable; urgency=low
5776+
5777+ [ John MacFarlane ]
5778+
5779+ * Changes in pandoc options:
5780+
5781+ + Allow options to follow or precede arguments.
5782+ + Changed '--smartypants' to '--smart' and adjusted symbols accordingly.
5783+ + Added '--strict' option.
5784+ + Added '-o/--output' option.
5785+ + Added '--dump-args' and '--ignore-args' options (for use in wrappers).
5786+ + Modified '-v' and '-h' output to go to STDERR, not STDOUT, and return
5787+ error conditions. This is helpful for writing wrappers.
5788+ + Added copyright message to '-v' output, modeled after FSF messages.
5789+ + Reformatted usage message so that it doesn't wrap illegibly.
5790+ + Removed extra blanks after '-h' and '-D' output.
5791+
5792+ * Added docbook writer.
5793+
5794+ * Added implicit setting of default input and output format based
5795+ on input and output filename extensions. These defaults are
5796+ overridden if explicit input and output formats are specified using
5797+ '-t', '-f', '-r', or '-w' options. Documented in pandoc(1) man page
5798+ and README.
5799+
5800+ * Allow ordered list items to begin with (single) letters, as well
5801+ as numbers. The list item marker may now be terminated either by
5802+ '.' or by ')'. This extension to standard markdown is documented
5803+ in README.
5804+
5805+ * Revised footnote syntax. (See README for full details.) The
5806+ '[^1]' format now standard in markdown extensions is supported,
5807+ as are inline footnotes with this syntax: '^[My note.]'.
5808+ The earlier footnote syntax '^(1)' is no longer supported.
5809+
5810+ * Improved HTML representation of footnotes. All footnotes
5811+ are now auto-numbered and appear in an ordered list at the
5812+ end of the HTML document. Since the default appearance is now
5813+ acceptable, the old footnote styles have been removed from the
5814+ HTML header.
5815+
5816+ * Bug fixes:
5817+
5818+ + Fixed a serious bug in the markdown, LaTeX, and RST readers.
5819+ These readers ran 'runParser' on processed chunks of text to handle
5820+ embedded block lists in lists and quotation blocks. But then
5821+ any changes made to the parser state in these chunks was lost,
5822+ as the state is local to the parser. So, for example, footnotes
5823+ didn't work in quotes or list items. The fix: instead of calling
5824+ runParser on some raw text, use setInput to make it the input, then
5825+ parse it, then use setInput to restore the input to what it was
5826+ before. This is shorter and more elegant, and it fixes the problem.
5827+ + Fixed bug in notFollowedBy' combinator (adding 'try' before
5828+ 'parser'). Adjusted code that uses this combinator accordingly.
5829+ + Fixed bug in RTF writer that caused improper indentation on
5830+ footnotes occurring in indented blocks like lists.
5831+ + Fixed parsing of metadata in LaTeX reader. Now the title, author,
5832+ and date are parsed correctly. Everything else in the preamble
5833+ is skipped.
5834+ + Modified escapedChar in LaTeX reader to allow a '\' at the end of a
5835+ line to count as escaped whitespace.
5836+ + Modified LaTeX reader to produce inline links rather than reference
5837+ links. Otherwise, links in footnotes aren't handled properly.
5838+ + Fixed handling of titles in links in Markdown reader, so that
5839+ embedded quotation marks are now handled properly.
5840+ + Fixed Markdown reader's handling of embedded brackets in links.
5841+ + Fixed Markdown reader so that it only parses bracketed material
5842+ as a reference link if there is actually a corresponding key.
5843+ + Revised inline code parsing in Markdown reader to conform to
5844+ markdown standard. Now any number of `s can begin inline code,
5845+ which will end with the same number of `s. For example, to
5846+ have two backticks as code, write ``` `` ```. Modified Markdown
5847+ writer accordingly.
5848+ + Fixed bug in text-wrapping routine in Markdown and RST writers.
5849+ Now LineBreaks no longer cause wrapping problems.
5850+ + Supported hexadecimal numerical entity references as well as
5851+ decimal ones.
5852+ + Fixed bug in Markdown reader's handling of underscores and other
5853+ inline formatting markers inside reference labels: for example,
5854+ in '[A_B]: /url/a_b', the material between underscores was being
5855+ parsed as emphasized inlines.
5856+ + Changed Markdown reader's handling of backslash escapes so that
5857+ only non-alphanumeric characters can be escaped. Strict mode
5858+ follows Markdown.pl in only allowing a select group of punctuation
5859+ characters to be escaped.
5860+ + Modified HTML reader to skip a newline following a `<br>` tag.
5861+ Otherwise the newline will be treated as a space at the beginning
5862+ of the next line.
5863+
5864+ * Made handling of code blocks more consistent. Previously, some
5865+ readers allowed trailing newlines, while others stripped them.
5866+ Now, all readers strip trailing newlines in code blocks. Writers
5867+ insert a newline at the end of code blocks as needed.
5868+
5869+ * Modified readers to make spacing at the end of output more consistent.
5870+
5871+ * Minor improvements to LaTeX reader:
5872+
5873+ + '\thanks' now treated like a footnote.
5874+ + Simplified parsing of LaTeX command arguments and options.
5875+ commandArgs now returns a list of arguments OR options (in
5876+ whatever order they appear). The brackets are included, and
5877+ a new stripFirstAndLast function is provided to strip them off
5878+ when needed. This fixes a problem in dealing with \newcommand
5879+ and \newenvironment.
5880+
5881+ * Revised RTF writer:
5882+
5883+ + Default font is now Helvetica.
5884+ + An '\f0' is added to each '\pard', so that font resizing works
5885+ correctly.
5886+
5887+ * Moved handling of "smart typography" from the writers to the Markdown
5888+ and LaTeX readers. This allows great simplification of the writers
5889+ and more accurate smart quotes, dashes, and ellipses. DocBook can
5890+ now use `<quote>`. The '--smart' option now toggles an option in
5891+ the parser state rather than a writer option. Several new kinds
5892+ of inline elements have been added: Quoted, Ellipses, Apostrophe,
5893+ EmDash, EnDash.
5894+
5895+ * Changes in HTML writer:
5896+
5897+ + Include title block in header even when title is null.
5898+ + Made javascript obfuscation of emails even more obfuscatory,
5899+ by combining it with entity obfuscation.
5900+
5901+ * Changed default ASCIIMathML text color to black.
5902+
5903+ * Test suite:
5904+
5905+ + Added --strip-trailing-cr option to diff in runtests.pl, for
5906+ compatibility with Windows.
5907+ + Added regression tests with footnotes in quote blocks and lists.
5908+
5909+ * Makefile changes:
5910+
5911+ + osx-pkg target creates a Mac OS X package (directory). New osx
5912+ directory contains files needed for construction of the package.
5913+ + osx-dmg target creates a compressed disk image containing the package.
5914+ + win-pkg target creates Windows binary package.
5915+ + tarball target creates distribution source tarball.
5916+ + website target generates pandoc's website automatically, including
5917+ demos. New 'web' directory containts files needed for construction
5918+ of the website (which will be created as the 'pandoc' subdirectory
5919+ of 'web').
5920+ + Makefile checks to see if we're running Windows/Cygwin; if so,
5921+ a '.exe' extension is added to each executable in EXECS.
5922+
5923+ * Removed all wrappers except markdown2pdf and html2markdown.
5924+
5925+ * Added new wrapper hsmarkdown, to be used as a drop-in replacement
5926+ for Markdown.pl. hsmarkdown calls pandoc with the '--strict'
5927+ option and disables other options.
5928+
5929+ * Added code to html2markdown that tries to determine the character
5930+ encoding of an HTML file, by parsing the "Content-type" meta tag.
5931+
5932+ + If the encoding can't be determined, then if the content is local,
5933+ the local encoding is used; if it comes from a URL, UTF-8 is used
5934+ by default.
5935+ + If input is from STDIN, don't try to determine character encoding.
5936+ + Encoding can be specified explicitly using '-e' option.
5937+
5938+ * Improved warning messages in wrappers:
5939+
5940+ + Print warning if iconv not available
5941+ + More user-friendly error messages in markdown2pdf, when
5942+ pdflatex fails.
5943+
5944+ * Code cleanup:
5945+
5946+ + Renamed 'Text/Pandoc/HtmlEntities' module to
5947+ 'Text/Pandoc/Entities'. Also changed function names so as
5948+ not to be HTML-specific.
5949+ + Refactored SGML string escaping functions from HTML and Docbook
5950+ writers into Text/Pandoc/Shared. (escapeSGML, stringToSGML)
5951+ + Removed 'BlockQuoteContext' from ParserContext, as it isn't
5952+ used anywhere.
5953+ + Removed splitBySpace and replaced it with a general, polymorphic
5954+ splitBy function.
5955+ + Refactored LaTeX reader for clarity (added isArg function).
5956+ + Converted some CR's to LF's in src/ui/default/print.css.
5957+ + Added license text to top of source files.
5958+ + Added module data for haddock to source files.
5959+ + Reformatted code for consistency.
5960+
5961+ * Rewrote documentation and man pages. Split README into INSTALL
5962+ and README.
5963+
5964+ * Split LICENSE into COPYING and COPYRIGHT.
5965+
5966+ * Removed TODO, since we now maintain ToDo on the wiki.
5967+
5968+ * Made COPYRIGHT in top level a symlink to debian/copyright, to avoid
5969+ duplication.
5970+
5971+ [ Recai Oktaş ]
5972+
5973+ * Revamped build process to conform to debian standards and created
5974+ a proper debian package. Closes: #391666.
5975+
5976+ * Modified build process to support GHC 6.6.
5977+
5978+ + The package can still be compiled using GHC 6.4.2, though because
5979+ of dependencies the "make deb" target works only with GHC 6.6+.
5980+ + The script 'cabalize' is used to create an appropriate
5981+ 'Pandoc.cabal' from 'Pandoc.cabal.in', depending on the GHC and
5982+ Cabal versions.
5983+
5984+ * Refactored template processing (fillTemplates.pl).
5985+
5986+ * Modified wrapper scripts to make them more robust and portable.
5987+ To avoid code duplication and ensure consistency, wrappers are
5988+ generated via a templating system from templates in src/wrappers.
5989+
5990+ + Wrappers now accept multiple filenames, when appropriate.
5991+ + Spaces and tabs allowed in filenames.
5992+ + getopts shell builtin is used for portable option parsing.
5993+ + Improved html2markdown's web grabber code, making it more robust,
5994+ configurable and verbose. Added '-e', '-g' options.
5995+
5996+ -- Recai Oktaş <roktas@debian.org> Fri, 05 Jan 2007 09:41:19 +0200
5997+
5998+pandoc (0.2) unstable; urgency=low
5999+
6000+ * Fixed unicode/utf-8 translation
6001+
6002+ -- John MacFarlane <jgm@berkeley.edu> Mon, 14 Aug 2006 00:00:00 -0400
6003+
6004+pandoc (0.1) unstable; urgency=low
6005+
6006+ * Initial creation of debian package
6007+
6008+ -- John MacFarlane <jgm@berkeley.edu> Mon, 14 Aug 2006 00:00:00 -0400