forked from jgm/pandoc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog
7362 lines (5550 loc) · 298 KB
/
changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
pandoc (1.13.1)
* Fixed `--self-contained` with Windows paths (#1558).
Previously `C:\foo.js` was being wrongly interpreted as a URI.
* HTML reader: improved handling of tags that can be block or inline.
Previously a section like this would be enclosed in a paragraph,
with RawInline for the video tags (since video is a tag that can
be either block or inline):
<video controls="controls">
<source src="../videos/test.mp4" type="video/mp4" />
<source src="../videos/test.webm" type="video/webm" />
<p>
The videos can not be played back on your system.<br/>
Try viewing on Youtube (requires Internet connection):
<a href="http://youtu.be/etE5urBps_w">Relative Velocity on
Youtube</a>.
</p>
</video>
This change will cause the video and source tags to be parsed
as RawBlock instead, giving better output.
The general change is this: when we're parsing a "plain" sequence
of inlines, we don't parse anything that COULD be a block-level tag.
* Docx reader:
+ Be sensitive to user styles. Note that "Hyperlink" is
"blacklisted," as we don't want the default underline styling to be
inherited by all links by default (Jesse Rosenthal).
+ Read single paragraph in table cell as `Plain` (Jesse Rosenthal).
This makes to docx reader's native output fit with the way the markdown
reader understands its markdown output.
* Textile writer: Extended the range of cases where native textile
tables will be used (as opposed to raw HTML): we now handle any
alignment type, but only for simple tables with no captions.
* Txt2Tags reader:
+ Header is now parsed only if standalone flag is set (Matthew Pickering).
+ The header is now parsed as meta information. The first line is the
`title`, the second is the `author` and third line is the `date`
(Matthew Pickering).
+ Corrected formatting of `%%mtime` macro (Matthew Pickering).
+ Fixed crash when reading from stdin.
* EPUB writer: Don't use page-progression-direction in EPUB2, which
doesn't support it. Also, if page-progression-direction not specified
in metadata, don't include the attribute even in EPUB3; not including it
is the same as including it with the value "default", as we did before.
(#1550)
* Org writer: Accept example lines with indentation at the beginning
(Calvin Beck).
* DokuWiki writer:
+ Refactor to use Reader monad (Matthew Pickering).
+ Avoid using raw HTML in table cells; instead, use `\\`
instead of newlines (Jesse Rosenthal).
+ Properly handle HTML table cell alignments, and use spacing
to make the tables look prettier (#1566).
* Docx writer:
+ Bibliography entries get `Bibliography` style (#1559).
+ Implement change tracking (Jesse Rosenthal).
* LaTeX writer:
+ Fixed a bug that caused a table caption to repeat across all pages
(Jose Luis Duran).
+ Improved vertical spacing in tables and made it customizable using
standard lengths set by booktab. See
<https://groups.google.com/forum/#!msg/pandoc-discuss/qMu6_5lYy0o/ZAU7lzAIKw0J>
(Jose Luis Duran).
+ Added `\strut` to fix spacing in multiline tables (Jose Luis Duran).
+ Use `\tabularnewline` instead of `\\` in table cells (Jose Luis Duran).
+ Made horizontal rules more flexible (Jose Luis Duran).
* Text.Pandoc.MIME:
+ Added `MimeType` (type synonym for `String`) and `getMimeTypeDef`.
Code cleanups (Artyom Kazak).
* Templates:
+ LaTeX template: disable microtype protrusion for typewriter font (#1549,
thanks lemzwerg).
* Improved OSX build procedure.
* Added `network-uri` flag, to deal with split of `network-uri` from
`network`.
* Fix build dependencies for the `trypandoc` flag, so that they are
ignored if `trypandoc` flag is set to False (Gabor Pali).
* Updated README to remove outdated claim that `--self-contained`
looks in the user data directory for missing files.
pandoc (1.13.0.1)
* Docx writer:
+ Fixed regression which bungled list numbering (#1544), causing
all lists to appear as basic ordered lists.
+ Include row width in table rows (Christoffer Ackelman, Viktor Kronvall).
Added a property to all table rows where the sum of column widths
is specified in pct (fraction of 5000). This helps persuade Word
to lay out the table with the widths we specify.
* Fixed a bug in Windows 8 which caused pandoc not to find the
`pandoc-citeproc` filter (#1542).
* Docx reader: miscellaneous under-the-hood improvements (Jesse Rosenthal).
Most significantly, the reader now uses Builder, leading to some
performance improvements.
* HTML reader: Parse appropriately styled span as SmallCaps.
* Markdown writer: don't escape `$`, `^`, `~` when `tex_math_dollars`,
`superscript`, and `subscript` extensions, respectively, are
deactivated (#1127).
* Added `trypandoc` flag to build CGI executable used in the online
demo.
* Makefile: Added 'quick', 'osxpkg' targets.
* Updated README in templates to indicate templates license.
The templates are dual-licensed, BSD3 and GPL2+.
pandoc (1.13)
[new features]
* Added `docx` as an input format (Jesse Rosenthal). The docx
reader includes conversion of native Word equations to pandoc
LaTeX `Math` elements. Metadata is taken from paragraphs at the
beginning of the document with styles `Author`, `Title`, `Subtitle`,
`Date`, and `Abstract`.
* Added `epub` as an input format (Matthew Pickering). The epub
reader includes conversion of MathML to pandoc LaTeX `Math`
elements.
* Added `t2t` (Txt2Tags) as an input format (Matthew Pickering).
Txt2tags is a lightweight markup format described at
<http://txt2tags.org/>.
* Added `dokuwiki` as an output format (Clare Macrae).
* Added `haddock` as an output format.
* Added `--extract-media` option to extract media contained in a zip
container (docx or epub) while adjusting image paths to point to the
extracted images.
* Added a new markdown extension, `compact_definition_lists`, that
restores the syntax for definition lists of pandoc 1.12.x, allowing
tight definition lists with no blank space between items, and
disallowing lazy wrapping. (See below under behavior changes.)
* Added an extension `epub_html_exts` for parsing HTML in EPUBs.
* Added extensions `native_spans` and `native_divs` to activate
parsing of material in HTML span or div tags as Pandoc Span
inlines or Div blocks.
* `--trace` now works with the Markdown, HTML, Haddock, EPUB,
Textile, and MediaWiki readers. This is an option intended
for debugging parsing problems; ordinary users should not need
to use it.
[behavior changes]
* Changed behavior of the `markdown_attribute` extension, to bring
it in line with PHP markdown extra and multimarkdown. Setting
`markdown="1"` on an outer tag affects all contained tags,
recursively, until it is reversed with `markdown="0"` (#1378).
* Revised markdown definition list syntax (#1429). Both the reader
and writer are affected. This change brings pandoc's definition list
syntax into alignment with that used in PHP markdown extra and
multimarkdown (with the exception that pandoc is more flexible about
the definition markers, allowing tildes as well as colons). Lazily
wrapped definitions are now allowed. Blank space is required
between list items. The space before a definition is used to determine
whether it is a paragraph or a "plain" element. **WARNING: This change
may break existing documents!** Either check your documents for
definition lists without blank space between items, or use
`markdown+compact_definition_lists` for the old behavior.
* `.numberLines` now works in fenced code blocks even if no language
is given (#1287, jgm/highlighting-kate#40).
* Improvements to `--filter`:
+ Don't search PATH for a filter with an explicit path.
This fixed a bug wherein `--filter ./caps.py` would run `caps.py` from
the system path, even if there was a `caps.py` in the working directory.
+ Respect shebang if filter is executable (#1389).
+ Don't print misleading error message.
Previously pandoc would say that a filter was not found,
even in a case where the filter had a syntax error.
* HTML reader:
+ Parse `div` and `span` elements even without `--parse-raw`,
provided `native_divs` and `native_spans` extensions are set.
Motivation: these now generate native pandoc Div and Span
elements, not raw HTML.
+ Parse EPUB-specific elements if the `epub_html_exts`
extension is enabled. These include `switch`, `footnote`,
`rearnote`, `noteref`.
* Org reader:
+ Support for inline LaTeX. Inline LaTeX is now accepted and parsed by the
org-mode reader. Both math symbols (like `\tau`) and LaTeX commands (like
`\cite{Coffee}`), can be used without any further escaping (Albert
Krewinkel).
* Textile reader and writer:
+ The `raw_tex` extension is no longer set by default. You can
enable it with `textile+raw_tex`.
* DocBook reader:
+ Support `equation`, `informalequation`, `inlineequation` elements with
`mml:math` content. This is converted into LaTeX and put into a Pandoc
Math inline.
* Revised `plain` output, largely following the style of Project
Gutenberg:
+ Emphasis is rendered with `_underscores_`, strong emphasis
with ALL CAPS.
+ Headings are rendered differently, with space to set them off,
not with setext style underlines. Level 1 headers are ALL CAPS.
+ Math is rendered using unicode when possible, but without the
distracting emphasis markers around variables.
+ Footnotes use a regular `[n]` style.
* Markdown writer:
+ Horizontal rules are now a line across the whole page.
+ Prettier pipe tables. Columns are now aligned (#1323).
+ Respect the `raw_html` extension. `pandoc -t markdown-raw_html`
no longer emits any raw HTML, including span and div tags
generated by Span and Div elements.
+ Use span with style for `SmallCaps` (#1360).
* HTML writer:
+ Autolinks now have class `uri`, and email autolinks have class
`email`, so they can be styled.
* Docx writer:
+ Document formatting is carried over from `reference.docx`.
This includes margins, page size, page orientation, header,
and footer, including images in headers and footers.
+ Include abstract (if present) with `Abstract` style (#1451).
+ Include subtitle (if present) with `Subtitle` style, rather
than tacking it on to the title (#1451).
* Org writer:
+ Write empty span elements with an id attribute as org anchors.
For example `Span ("uid",[],[]) []` becomes `<<uid>>`.
* LaTeX writer:
+ Put table captions above tables, to match the conventional
standard. (Previously they appeared below tables.)
+ Use `\(..\)` instead of `$..$` for inline math (#1464).
+ Use `\nolinkurl` in email autolinks. This allows them to be styled
using `\urlstyle{tt}`. Thanks to Ulrike Fischer for the solution.
+ Use `\textquotesingle` for `'` in inline code. Otherwise we get
curly quotes in the PDF output (#1364).
+ Use `\footnote<.>{..}` for notes in beamer, so that footnotes
do not appear before the overlays in which their markers appear
(#1525).
+ Don't produce a `\label{..}` for a Div or Span element. Do produce
a `\hyperdef{..}` (#1519).
* EPUB writer:
+ If the metadata includes `page-progression-direction` (which can be
`ltr` or `rtl`, the `page-progression-direction` attribute will
be set in the EPUB spine (#1455).
* Custom lua writers:
+ Custom writers now work with `--template`.
+ Removed HTML header scaffolding from `sample.lua`.
+ Made citation information available in lua writers.
* `--normalize` and `Text.Pandoc.Shared.normalize` now consolidate
adjacent `RawBlock`s when possible.
[API changes]
* Added `Text.Pandoc.Readers.Docx`, exporting `readDocx` (Jesse Rosenthal).
* Added `Text.Pandoc.Readers.EPUB`, exporting `readEPUB` (Matthew
Pickering).
* Added `Text.Pandoc.Readers.Txt2Tags`, exporting `readTxt2Tags` (Matthew
Pickering).
* Added `Text.Pandoc.Writers.DokuWiki`, exporting `writeDokuWiki`
(Clare Macrae).
* Added `Text.Pandoc.Writers.Haddock`, exporting `writeHaddock`.
* Added `Text.Pandoc.MediaBag`, exporting `MediaBag`, `lookupMedia`,
`insertMedia`, `mediaDirectory`, `extractMediaBag`. The docx and epub
readers return a pair of a `Pandoc` document and a `MediaBag` with
the media resources they contain. This can be extracted using
`--extract-media`. Writers that incorporate media (PDF, Docx,
ODT, EPUB, RTF, or HTML formats with `--self-contained`) will look
for resources in the `MediaBag` generated by the reader, in addition to
the file system or web.
* `Text.Pandoc.Readers.TexMath`: Removed deprecated `readTeXMath`.
Renamed `readTeXMath'` to `texMathToInlines`.
* `Text.Pandoc`: Added `Reader` data type (Matthew Pickering).
`readers` now associates names of readers with `Reader`
structures. This allows inclusion of readers, like the docx
reader, that take binary rather than textual input.
* `Text.Pandoc.Shared`:
+ Added `capitalize` (Artyom Kazak), and replaced uses of
`map toUpper` (which give bad results for many languages).
+ Added `collapseFilePath`, which removes intermediate `.` and
`..` from a path (Matthew Pickering).
+ Added `fetchItem'`, which works like `fetchItem` but searches
a `MediaBag` before looking on the net or file system.
+ Added `withTempDir`.
+ Added `removeFormatting`.
+ Added `extractSpaces` (from HTML reader) and generalized its type
so that it can be used by the docx reader (Matthew Pickering).
+ Added `ordNub`.
+ Added `normalizeInlines`, `normalizeBlocks`.
+ `normalize` is now `Pandoc -> Pandoc` instead of
`Data a :: a -> a`. Some users may need to change their uses of
`normalize` to the newly exported `normalizeInlines` or
`normalizeBlocks`.
* `Text.Pandoc.Options`:
+ Added `writerMediaBag` to `WriterOptions`.
+ Removed deprecated and no longer used `readerStrict` in
`ReaderOptions`. This is handled by `readerExtensions` now.
+ Added `Ext_compact_definition_lists`.
+ Added `Ext_epub_html_exts`.
+ Added `Ext_native_divs` and `Ext_native_spans`.
This allows users to turn off the default pandoc behavior of
parsing contents of div and span tags in markdown and HTML
as native pandoc Div blocks and Span inlines.
* `Text.Pandoc.Parsing`:
+ Generalized `readWith` to `readWithM` (Matthew Pickering).
+ Export `runParserT` and `Stream` (Matthew Pickering).
+ Added `HasQuoteContext` type class (Matthew Pickering).
+ Generalized types of `mathInline`, `smartPunctuation`, `quoted`,
`singleQuoted`, `doubleQuoted`, `failIfInQuoteContext`,
`applyMacros` (Matthew Pickering).
+ Added custom `token` (Matthew Pickering).
+ Added `stateInHtmlBlock` to `ParserState`. This is used to keep
track of the ending tag we're waiting for when we're parsing inside
HTML block tags.
+ Added `stateMarkdownAttribute` to `ParserState`. This is used
to keep track of whether the markdown attribute has been set in
an enclosing tag.
+ Generalized type of `registerHeader`, using new type classes
`HasReaderOptions`, `HasIdentifierList`, `HasHeaderMap` (Matthew
Pickering). These allow certain common functions to be reused
even in parsers that use custom state (instead of `ParserState`),
such as the MediaWiki reader.
+ Moved `inlineMath`, `displayMath` from Markdown reader to Parsing,
and generalized their types (Matthew Pickering).
* `Text.Pandoc.Pretty`:
+ Added `nestle`.
+ Added `blanklines`, which guarantees a certain number of blank lines
(and no more).
[bug fixes]
* Markdown reader:
+ Fixed parsing of indented code in list items. Indented code
at the beginning of a list item must be indented eight spaces
from the margin (or edge of the container), or four spaces
from the list marker, whichever is greater.
+ Fixed small bug in HTML parsing with `markdown_attribute`, which
caused incorrect tag nesting for input like
`<aside markdown="1">*hi*</aside>`.
+ Fixed regression with intraword underscores (#1121).
+ Improved parsing of inline links containing quote characters (#1534).
+ Slight rewrite of `enclosure`/`emphOrStrong` code.
+ Revamped raw HTML block parsing in markdown (#1330).
We no longer include trailing spaces and newlines in the
raw blocks. We look for closing tags for elements (but without
backtracking). Each block-level tag is its own `RawBlock`;
we no longer try to consolidate them (though `--normalize` will do so).
+ Combine consecutive latex environments. This helps when you have
two minipages which can't have blank lines between them (#690, #1196).
+ Support smallcaps through span.
`<span style="font-variant:small-caps;">foo</span>` will be
parsed as a `SmallCaps` inline, and will work in all output
formats that support small caps (#1360).
+ Prevent spurious line breaks after list items (#1137). When the
`hard_line_breaks` option was specified, pandoc would formerly
produce a spurious line break after a tight list item.
+ Fixed table parsing bug (#1333).
+ Handle `c++` and `objective-c` as language identifiers in
github-style fenced blocks (#1318).
+ Inline math must have nonspace before final `$` (#1313).
* LaTeX reader:
+ Handle comments at the end of tables. This resolves the issue
illustrated in <http://stackoverflow.com/questions/24009489>.
+ Correctly handle table rows with too few cells. LaTeX seems to
treat them as if they have empty cells at the end (#241).
+ Handle leading/trailing spaces in `\emph` better.
`\emph{ hi }` gets parsed as `[Space, Emph [Str "hi"], Space]`
so that we don't get things like `* hi *` in markdown output.
Also applies to `\textbf` and some other constructions (#1146).
+ Don't assume preamble doesn't contain environments (#1338).
+ Allow (and discard) optional argument for `\caption` (James Aspnes).
* HTML reader:
+ Fixed major parsing problem with HTML tables. Table cells were
being combined into one cell (#1341).
+ Fixed performance issue with malformed HTML tables.
We let a `</table>` tag close an open `<tr>` or `<td>` (#1167).
+ Allow space between `<col>` and `</col>`.
+ Added `audio` and `source` in `eitherBlockOrInline`.
+ Moved `video`, `svg`, `progress`, `script`, `noscript`, `svg` from
`blockTags` to `eitherBlockOrInline`.
+ `map` and `object` were mistakenly in both lists; they have been removed
from `blockTags`.
+ Ignore `DOCTYPE` and `xml` declarations.
* MediaWiki reader:
+ Don't parse backslash escapes inside `<source>` (#1445).
+ Tightened up template parsing.
The opening `{{` must be followed by an alphanumeric or `:`.
This prevents the exponential slowdown in #1033.
+ Support "Bild" for images.
* DocBook reader:
+ Better handle elements inside code environments. Pandoc's document
model does not allow structure inside code blocks, but at least this way
we preserve the text (#1449).
+ Support `<?asciidoc-br?>` (#1236).
* Textile reader:
+ Fixed list parsing. Lists can now start without an intervening
blank line (#1513).
+ HTML block-level tags that do not start a line are parsed as
inline HTML and do not interrupt paragraphs (as in RedCloth).
* Org reader:
+ Make tildes create inline code (#1345). Also relabeled `code` and
`verbatim` parsers to accord with the org-mode manual.
+ Respect `:exports` header argument in code blocks (Craig Bosma).
+ Fixed tight lists with sublists (#1437).
* EPUB writer:
+ Avoid excess whitespace in `nav.xhtml`. This should improve
TOC view in iBooks (#1392).
+ Fixed regression on cover image.
In 1.12.4 and 1.12.4.2, the cover image would not appear properly,
because the metadata id was not correct. Now we derive the id from the
actual cover image filename, which we preserve rather than using
"cover-image."
+ Keep newlines between block elements. This allows
easier diff-ability (#1424).
+ Use `stringify` instead of custom `plainify`.
+ Use `renderTags'` for all tag rendering. This properly handles tags
that should be self-closing. Previously `<hr/>` would appear in EPUB
output as `<hr></hr>` (#1420).
+ Better handle HTML media tags.
+ Handle multiple dates with OPF `event` attributes. Note: in EPUB3 we
can have only one dc:date, so only the first one is used.
* LaTeX writer:
+ Correctly handle figures in notes. Notes can't contain figures in
LaTeX, so we fake it to avoid an error (#1053).
+ Fixed strikeout + highlighted code (#1294).
Previously strikeout highlighted code caused an error.
* ConTeXt writer:
+ Improved detection of autolinks with URLs containing escapes.
* RTF writer:
+ Improved image embedding: `fetchItem'` is now used to get the
images, and calculated image sizes are indicated in the RTF.
+ Avoid extra paragraph tags in metadata (#1421).
* HTML writer:
+ Deactivate "incremental" inside slide speaker notes (#1394).
+ Don't include empty items in the table of contents for
slide shows. (These would result from creating a slide
using a horizontal rule.)
* MediaWiki writer:
+ Minor renaming of `st` prefixed names.
* AsciiDoc writer:
+ Double up emphasis and strong emphasis markers in intraword
contexts, as required by asciidoc (#1441).
* Markdown writer:
+ Avoid wrapping that might start a list, blockquote, or header (#1013).
+ Use Span instead of (hackish) `SmallCaps` in `plainify`.
+ Don't use braced attributes for fenced code (#1416).
If `Ext_fenced_code_attributes` is not set, the first class
attribute will be printed after the opening fence as a bare word.
+ Separate adjacent lists of the same kind with an HTML comment (#1458).
* PDF writer:
+ Fixed treatment of data uris for images (#1062).
* Docx writer:
+ Use Compact style for empty table cells (#1353).
Otherwise we get overly tall lines when there are empty
table cells and the other cells are compact.
+ Create overrides per-image for `media/` in reference docx.
This should be somewhat more robust and cover more types of images.
+ Improved `entryFromArchive` to avoid an unneeded parse.
+ Section numbering carries over from reference.docx (#1305).
+ Simplified `abstractNumId` numbering. Instead of sequential numbering,
we assign numbers based on the list marker styles.
* `Text.Pandoc.Options`:
+ Removed `Ext_fenced_code_attributes` from `markdown_github`
extensions.
* `Text.Pandoc.ImageSize`:
+ Use default instead of failing if image size not found
in exif header (#1358).
+ ignore unknown exif header tag rather than crashing.
Some images seem to have tag type of 256, which was causing
a runtime error.
* `Text.Pandoc.Shared`:
+ `fetchItem`: unescape URI encoding before reading local file (#1427).
+ `fetchItem`: strip a fragment like `?#iefix` from the extension before
doing mime lookup, to improve mime type guessing.
+ Improved logic of `fetchItem`: absolute URIs are fetched from the net;
other things are treated as relative URIs if `sourceURL` is `Just _`,
otherwise as file paths on the local file system.
+ `fetchItem` now properly handles links without a protocol (#1477).
+ `fetchItem` now escapes characters not allowed in URIs before trying
to parse the URIs.
+ Fixed runtime error with `compactify'DL` on certain lists (#1452).
* `pandoc.hs`: Don't strip path off of `writerSourceURL`: the path is
needed to resolve relative URLs when we fetch resources (#750).
* `Text.Pandoc.Parsing`
+ Simplified `dash` and `ellipsis` (#1419).
+ Removed `(>>~)` in favor of the equivalent `(<*)` (Matthew Pickering).
+ Generalized functions to use `ParsecT` (Matthew Pickering).
+ Added `isbn` and `pmid` to list of recognized schemes (Matthew
Pickering).
[template changes]
* Added haddock template.
* EPUB3: Added `type` attribute to `link` tags. They are supposed to
be "advisory" in HTML5, but kindlegen seems to require them.
* EPUB3: Put title page in section with `epub:type="titlepage"`.
* LaTeX: Made `\subtitle` work properly (#1327).
* LaTeX/Beamer: remove conditional around date (#1321).
* LaTeX: Added `lot` and `lof` variables, which can be set to
get `\listoftables` and `\listoffigures` (#1407). Note that
these variables can be set at the command line with `-Vlot -Vlof`
or in YAML metadata.
[under the hood improvements]
* Rewrote normalize for efficiency (#1385).
* Rewrote Haddock reader to use `haddock-library` (#1346).
+ This brings pandoc's rendering of haddock markup in line
with the new haddock.
+ Fixed line breaks in `@` code blocks.
+ alex and happy are no longer build-depends.
* Added `Text.Pandoc.Compat.Directory` to allow building against
different versions of the `directory` library.
+ Added `Text.Pandoc.Compat.Except` to allow building against
different verions of `mtl`.
* Code cleanup in some writers, using Reader monad to avoid
passing options parameter around (Matej Kollar).
* Improved readability in `pandoc.hs`.
* Miscellaneous code cleanups (Artyom Kazak).
* Avoid `import Prelude hiding (catch)` (#1309, thanks to Michael
Thompson).
* Changed `http-conduit` flag to `https`. Depend on `http-client`
and `http-client-tls` instead of `http-conduit`. (Note: pandoc still
depends on `conduit` via `yaml`.)
* Require `highlighting-kate >= 0.5.8.5` (#1271, #1317, Debian #753299).
This change to highlighting-kate means that PHP fragments no longer need
to start with `<?php`. It also fixes a serious bug causing failures with
ocaml and fsharp.
* Require latest `texmath`. This fixes `\tilde{E}` and allows
`\left` to be used with `]`, `)` etc. (#1319), among many other
improvements.
* Require latest `zip-archive`. This has fixes for unicode path names.
* Added tests for plain writer.
* `Text.Pandoc.Templates`:
+ Fail informatively on template syntax errors.
With the move from parsec to attoparsec, we lost good error
reporting. In fact, since we weren't testing for end of input,
malformed templates would fail silently. Here we revert back to
Parsec for better error messages.
+ Use `ordNub` (#1022).
* Benchmarks:
+ Made benchmarks compile again (Artyom Kazak).
+ Fixed so that the failure of one benchmark does not prevent others
from running (Artyom Kazak).
+ Use `nfIO` instead of the `getLength` trick to force full evaluation.
+ Changed benchmark to use only the test suite, so that benchmarks
run more quickly.
* Windows build script:
+ Add `-windows` to file name.
+ Use one install command for pandoc, pandoc-citeproc.
+ Force install of pandoc-citeproc.
* `make_osx_package`: Call zip file `pandoc-VERSION-osx.zip`.
The zip should not be named `SOMETHING.pkg.zip`, or OSX finder
will extract it into a folder named `SOMETHING.pkg`, which it
will interpret as a defective package (#1308).
* `README`:
+ Made headers for all extensions so they have IDs and can be
linked to (Beni Cherniavsky-Paskin).
+ Fixed typos (Phillip Alday).
+ Fixed documentation of attributes (#1315).
+ Clarified documentation on small caps (#1360).
+ Better documentation for `fenced_code_attributes` extension
(Caleb McDaniel).
+ Documented fact that you can put YAML metadata in a separate file
(#1412).
pandoc (1.12.4.2)
* Require highlighting-kate >= 0.5.8. Fixes a performance regression.
* Shared: `addMetaValue` now behaves slightly differently:
if both the new and old values are lists, it concatenates their
contents to form a new list.
* LaTeX reader:
+ Set `bibliography` in metadata from `\bibliography` or
`\addbibresource` command.
+ Don't error on `%foo` with no trailing newline.
* Org reader:
+ Support code block headers (`#+BEGIN_SRC ...`) (Albert Krewinkel).
+ Fix parsing of blank lines within blocks (Albert Krewinkel).
+ Support pandoc citation extension (Albert Krewinkel). This can
be turned off by specifying `org-citations` as the input format.
* Markdown reader:
+ `citeKey` moved to `Text.Pandoc.Parsing` so it can be used by
other readers (Albert Krewinkel).
* `Text.Pandoc.Parsing`:
+ Added `citeKey` (see above).
+ Added `HasLastStrPosition` type class and `updateLastStrPos`
and `notAfterString` functions.
* Updated copyright notices (Albert Krewinkel).
* Added default.icml to data files so it installs with the package.
* OSX package:
+ The binary is now built with options to ensure that it can be
used with OSX 10.6+.
+ Moved OSX package materials to osx directory.
+ Added OSX package uninstall script, included in the zip container
(thanks to Daniel T. Staal).
pandoc (1.12.4)
* Made it possible to run filters that aren't executable (#1096).
Pandoc first tries to find the executable (searching the path
if path isn't given). If it fails, but the file exists and has
a `.py`, `.pl`, `.rb`, `.hs`, or `.php` extension, pandoc runs the filter
using the appropriate interpreter. This should make it easier to
use filters on Windows, and make it more convenient for everyone.
* Added Emacs org-mode reader (Albert Krewinkel).
* Added InDesign ICML Writer (mb21).
* MediaWiki reader:
+ Accept image links in more languages (Jaime Marquínez Ferrándiz).
+ Fixed bug in certain nested lists (#1213). If a level 2 list was
followed by a level 1 list, the first item of the level 1 list
would be lost.
+ Handle table rows containing just an HTML comment (#1230).
* LaTeX reader:
+ Give better location information on errors, pointing to line
numbers within included files (#1274).
+ LaTeX reader: Better handling of `table` environment (#1204).
Positioning options no longer rendered verbatim.
+ Better handling of figure and table with caption (#1204).
+ Handle `@{}` and `p{length}` in tabular. The length is not actually
recorded, but at least we get a table (#1180).
+ Properly handle `\nocite`. It now adds a `nocite` metadata
field. Citations there will appear in the bibliography but not
in the text (unless you explicitly put a `$nocite$` variable
in your template).
* Markdown reader:
+ Ensure that whole numbers in YAML metadata are rendered without
decimal points. (This became necessary with changes to aeson
and yaml libraries. aeson >= 0.7 and yaml >= 0.8.8.2 are now required.)
+ Fixed regression on line breaks in strict mode (#1203).
+ Small efficiency improvements.
+ Improved parsing of nested `div`s. Formerly a closing `div` tag
would be missed if it came right after other block-level tags.
+ Avoid backtracking when closing `</div>` not found.
+ Fixed bug in reference link parsing in `markdown_mmd`.
+ Fixed a bug in list parsing (#1154). When reading a raw list
item, we now strip off up to 4 spaces.
+ Fixed parsing of empty reference link definitions (#1186).
+ Made one-column pipe tables work (#1218).
* Textile reader:
+ Better support for attributes. Instead of being ignored, attributes
are now parsed and included in Span inlines. The output will be a bit
different from stock textile: e.g. for `*(foo)hi*`, we'll get
`<em><span class="foo">hi</span></em>` instead of
`<em class="foo">hi</em>`. But at least the data is not lost.
+ Improved treatment of HTML spans (%) (#1115).
+ Improved link parsing. In particular we now pick up on attributes.
Since pandoc links can't have attributes, we enclose the whole link in
a span if there are attributes (#1008).
+ Implemented correct parsing rules for inline markup (#1175, Matthew
Pickering).
+ Use Builder (Matthew Pickering).
+ Fixed list parsing bug (#1500).
+ Don't allow inline formatting to extend over newlines.
This matches the behavior of RedCarpet, avoids some ugly bugs,
and improves performance.
* DocBook reader:
+ Better treatment of `formalpara`. We now emit the title (if present)
as a separate paragraph with boldface text (#1215).
+ Set metadata `author` not `authors`.
+ Added recognition of `authorgroup` and `releaseinfo` elements (#1214,
Matthew Pickering).
+ Converted current meta information parsing in DocBook to a more
extensible version which is aware of the more recent meta
representation (Matthew Pickering).
* HTML reader:
+ Require tagsoup 0.13.1, to fix a bug with parsing of script tags
(#1248).
+ Treat processing instructions & declarations as block. Previously
these were treated as inline, and included in paragraph tags in HTML
or DocBook output, which is generally not what is wanted (#1233).
+ Updated `closes` with rules from HTML5 spec.
+ Use Builder (Matthew Pickering, #1162).
* RST reader:
+ Remove duplicate `http` in PEP links (Albert Krewinkel).
+ Make rst figures true figures (#1168, CasperVector)
+ Enhanced Pandoc's support for rST roles (Merijn Verstaaten).
rST parser now supports: all built-in rST roles, new role definition,
role inheritance, though with some limitations.
+ Use `author` rather than `authors` in metadata.
+ Better handling of directives. We now correctly handle field
lists that are indented more than three spaces. We treat an
`aafig` directive as a code block with attributes, so it can be
processed in a filter (#1212).
* LaTeX writer:
+ Mark span contents with label if span has an ID (Albert Krewinkel).
+ Made `--toc-depth` work well with books in latex/pdf output (#1210).
+ Handle line breaks in simple table cells (#1217).
+ Workaround for level 4-5 headers in quotes. These previously produced
invalid LaTeX: `\paragraph` or `\subparagraph` in a `quote` environment.
This adds an `mbox{}` in these contexts to work around the problem.
See <http://tex.stackexchange.com/a/169833/22451> (#1221).
+ Use `\/` to avoid en-dash ligature instead of `-{}-` (Vaclav Zeman).
This is to fix LuaLaTeX output. The `-{}-` sequence does not avoid the
ligature with LuaLaTeX but `\/` does.
+ Fixed string escaping in `hyperref` and `hyperdef` (#1130).
* ConTeXt writer: Improved autolinks (#1270).
* DocBook writer:
+ Improve handling of hard line breaks in Docbook writer
(Neil Mayhew). Use a `<literallayout>` for the entire paragraph, not
just for the newline character.
+ Don't let line breaks inside footnotes influence the enclosing
paragraph (Neil Mayhew).
+ Distinguish tight and loose lists in DocBook output, using
`spacing="compact"` (Neil Mayhew, #1250).
* Docx writer: When needed files are not present in the user's
`reference.docx`, fall back on the versions in the `reference.docx`
in pandoc's data files. This fixes a bug that occurs when a
`reference.docx` saved by LibreOffice is used. (#1185)
* EPUB writer:
+ Include extension in epub ids. This fixes a problem with duplicate
extensions for fonts and images with the same base name but different
extensions (#1254).
+ Handle files linked in raw `img` tags (#1170).
+ Handle media in `audio` source tags (#1170).
Note that we now use a `media` directory rather than `images`.
+ Incorporate files linked in `video` tags (#1170). `src` and `poster`
will both be incorporated into `content.opf` and the epub container.
* HTML writer:
+ Add colgroup around col tags (#877). Also affects EPUB writer.
+ Fixed bug with unnumbered section headings. Unnumbered section
headings (with class `unnumbered`) were getting numbers.
+ Improved detection of image links. Previously image links with
queries were not recognized, causing `<embed>` to be used instead
of `<img>`.
* Man writer: Ensure that terms in definition lists aren't line wrapped
(#1195).
* Markdown writer:
+ Use proper escapes to avoid unwanted lists (#980). Previously we used
0-width spaces, an ugly hack.
+ Use longer backtick fences if needed (#1206). If the content contains a
backtick fence and there are attributes, make sure longer fences are
used to delimit the code. Note: This works well in pandoc, but github
markdown is more limited, and will interpret the first string of three
or more backticks as ending the code block.
* RST writer: Avoid stack overflow with certain tables (#1197).
* RTF writer: Fixed table cells containing paragraphs.
* Custom writer:
+ Correctly handle UTF-8 in custom lua scripts (#1189).
+ Fix bugs with lua scripts with mixed-case filenames and
paths containing `+` or `-` (#1267). Note that `getWriter`
in `Text.Pandoc` no longer returns a custom writer on input
`foo.lua`.
* AsciiDoc writer: Handle multiblock and empty table cells
(#1245, #1246). Added tests.
* `Text.Pandoc.Options`: Added `readerTrace` to `ReaderOptions`
* `Text.Pandoc.Shared`:
+ Added `compactify'DL` (formerly in markdown reader) (Albert Krewinkel).
+ Fixed bug in `toRomanNumeral`: numbers ending with '9' would
be rendered as Roman numerals ending with 'IXIV' (#1249). Thanks to
Jesse Rosenthal.
+ `openURL`: set proxy with value of http_proxy env variable (#1211).
Note: proxies with non-root paths are not supported, due to
limitations in `http-conduit`.
* `Text.Pandoc.PDF`:
+ Ensure that temp directories deleted on Windows (#1192). The PDF is
now read as a strict bytestring, ensuring that process ownership will
be terminated, so the temp directory can be deleted.
+ Use `/` as path separators in a few places, even on Windows.
This seems to be necessary for texlive (#1151, thanks to Tim Lin).
+ Use `;` for `TEXINPUTS` separator on Windows (#1151).
+ Changes to error reporting, to handle non-UTF8 error output.
* `Text.Pandoc.Templates`:
+ Removed unneeded datatype context (Merijn Verstraaten).
+ YAML objects resolve to "true" in conditionals (#1133).
Note: If `address` is a YAML object and you just have `$address$`
in your template, the word `true` will appear, which may be
unexpected. (Previously nothing would appear.)
* `Text.Pandoc.SelfContained`:
+ `mkSelfContained` now takes just two arguments, `WriterOptions` and
the string.
* It no longer looks in data files. This only made sense when we
had copies of slidy and S5 code there.
* `fetchItem'` is used instead of the nearly duplicate `getItem`.
+ Handle `poster` attribute in `video` tags (#1188).
* `Text.Pandoc.Parsing`:
+ Made `F` an instance of Applicative (#1138).
+ Added `stateCaption`.
+ Added `HasMacros`, simplified other typeclasses.
Removed `updateHeaderMap`, `setHeaderMap`, `getHeaderMap`,
`updateIdentifierList`, `setIdentifierList`, `getIdentifierList`.
+ Changed the smart punctuation parser to return `Inlines`
rather than `Inline` (Matthew Pickering).
+ Changed `HasReaderOptions`, `HasHeaderMap`, `HasIdentifierList`
from typeclasses of monads to typeclasses of states. This simplifies
the instance definitions and provides more flexibility. Generalized
type of `getOption` and added a default definition. Removed
`askReaderOption`. Added `extractReaderOption`. Added
`extractHeaderMap` and `updateHeaderMap` in `HasHeaderMap`.
Gave default definitions for `getHeaderMap`, `putHeaderMap`,
`modifyHeaderMap`. Added `extractIdentifierList` and
`updateIdentifierList` in `HasIdentifierList`. Gave defaults
for `getIdentifierList`, `putIdentifierList`, and
`modifyIdentifierList`. The ultimate goal here is to allow different
parsers to use their own, tailored parser states (instead of
`ParserState`) while still using shared functions.
* Template changes:
+ LaTeX template: Use `fontenc` package only with `pdflatex` (#1164).
+ LaTeX template: Add `linestretch` and `fontfamily` variables.
+ LaTeX template: Conditionalize author and date commands.
+ Beamer template: Consistent styles for figure and table captions
(aaronwolen).
+ LaTeX and beamer template: Adjust widths correctly for oversized
images. Use `\setkeys{Gin}{}` to set appropriate defaults for
`\includegraphics` (Yihui Xie, Garrick Aden-Buie). Load