forked from jgm/pandoc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog
6620 lines (4988 loc) · 269 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.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).
* 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`: 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
`upquote` only after `fontenc` (Yihui Xie).
+ Beamer template: Added caption package (#1200).
+ Beamer template: changes for better unicode handling (KarolS).
+ DocBook template: use `authorgroup` if there are authors.
+ revealjs template: Move `include-after` to end (certainlyakey).
+ revealjs template: Fixed PDF print function (#1220, kevinkenan).
* Bumped version bounds of dependencies.
* Added a `--trace` command line option, for debugging backtracking
bugs. So far this only works with the markdown reader.
* MathMLinHTML: Fixed deprecation warning (#362, gwern, Albert Krewinkel).
* Updated travis script to test with multiple GHC versions.
* Force failure of a Travis build if GHC produces warnings (Albert
Krewinkel).
* Add `.editorconfig` (Albert Krewinkel).
See <http://editorconfig.org/> for details.
* Give more useful error message if '-t pdf' is specified (#1155).
* Added `Cite`, `SmallCaps` to `Arbitrary` instance (#1269).
* Allow `html4` as a synonym of `html` as a reader (it already works
as a writer).
* README:
+ Added an explanation of how to use YAML metadata to
force items to appear in the bibliography without citations in
the text (like LaTeX `\nocite`).
+ Added note to `--bibtex/--natbib`: not for use in making PDF
(#1194, thanks to nahoj).
+ Added explanatory notes about `--natbib` and `--biblatex`.
+ Added specification of legal syntax for citation keys.
+ Fixed variable defaults documentation (Albert Krewinkel).
* Removed copyright statements for files that have been removed
(Albert Krewinkel).
* Moved some doc files from `data-files` to `extra-source-files` (#1123).
They aren't needed at runtime. We keep README and COPYRIGHT in data
to ensure that they'll be available on all systems on which pandoc
is installed.
* Use cabal sandboxes in Windows build script.
pandoc (1.12.3.3)
* To changes to source; recompiled tarball with latest alex and
happy, so they will work with GHC 7.8.
pandoc (1.12.3.2)
* Bumped version bounds for blaze-html, blaze-markup.
* ImageSize: Avoid use of lookAhead, which is not in binary >= 0.6
(#1124).
* Fixed mediawiki ordered list parsing (#1122).
* HTML reader: Fixed bug reading inline math with `$$` (#225).
* Added support for LaTeX style literate Haskell code blocks in rST
(Merijn Verstraaten).
pandoc (1.12.3.1)
* Relaxed version constraint on binary, allowing the use of binary 0.5.
pandoc (1.12.3)
* The `--bibliography` option now sets the `biblio-files` variable.
So, if you're using `--natbib` or `--biblatex`, you can just use
`--bibliography=foo.bib` instead of `-V bibliofiles=foo`.
* Don't run pandoc-citeproc filter if `--bibliography` is
used together with `--natbib` or `--biblatex` (Florian Eitel).
* Template changes:
+ Updated beamer template to include booktabs.
+ Added `abstract` variable to LaTeX template.
+ Put `header-includes` after `title` in LaTeX template (#908).
+ Allow use of `\includegraphics[size]` in beamer.
This just required porting a macro definition from the default
LaTeX template to the default beamer template.
* `reference.docx`: Include `FootnoteText` style.
Otherwise Word ignores the style, even when specified in the `pPr`.
(#901)
* `reference.odt`: Tidied `styles.xml`.
* Relaxed version bounds for dependencies.
* Added `withSocketsDo` around http conduit code in `openURL`,
so it works on Windows (#1080).
* Added `Cite` function to `sample.lua`.
* Markdown reader:
+ Fixed regression in title blocks (#1089).
If author field was empty, date was being ignored.
+ Allow backslash-newline hard line breaks in grid and
multiline table cells.
+ Citation keys may now start with underscores, and may contain
underscores adjacent to internal punctuation.
* LaTeX reader:
+ Add support for `Verb` macro (jrnold) (#1090).
+ Support babel-style quoting: `` "`..."' ``.
* Properly handle script blocks in strict mode. (That is,
`markdown-markdown_in_html_blocks`.) Previously a spurious
`<p>` tag was being added (#1093).
* Docbook reader: Avoid failure if `tbody` contains no `tr` or `row`
elements.
* LaTeX writer:
+ Factored out function for table cell creation.
+ Better treatment of footnotes in tables.
Notes now appear in the regular sequence, rather than in the
table cell. (This was a regression in 1.10.)
* HTML reader: Parse name/content pairs from meta tags as metadata.
Closes #1106.
* Moved `fixDisplayMath` from Docx writer to `Writer.Shared`.
* OpenDocument writer: Fixed `RawInline`, `RawBlock` so they don't escape.
* ODT writer: Use mathml for proper rendering of formulas.
Note: LibreOffice's support for this seems a bit buggy. But
it should be better than what we had before.
* RST writer: Ensure no blank line after def in definition list (#992).
* Markdown writer: Don't use tilde code blocks with braced attributes in
`markdown_github` output. A consequence of this change is that the
backtick form will be preferred in general if both are enabled. That
is good, as it is much more widespread than the tilde form. (#1084)
* Docx writer: Fixed problem with some modified reference docx files.
Include `word/_rels/settings.xml.rels` if it exists, as well as other
`rels` files besides the ones pandoc generates explicitly.
* HTML writer:
+ With `--toc`, headers no longer link to themselves (#1081).
+ Omit footnotes from TOC entries. Otherwise we get doubled
footnotes when headers have notes!
* EPUB writer:
+ Avoid duplicate notes when headings contain notes.
This arose because the headings are copied into the metadata
"title" field, and the note gets rendered twice. We strip the
note now before putting the heading in "title".
+ Strip out footnotes from toc entries.
+ Fixed bug with `--epub-stylesheet`. Now the contents of
`writerEpubStylesheet` (set by `--epub-stylesheet`)
should again work, and take precedence over a stylesheet specified
in the metadata.
* `Text.Pandoc.Pretty`: Added `nestle`. API change.
* `Text.Pandoc.MIME`: Added `wmf`, `emf`.
* `Text.Pandoc.Shared`: `fetchItem` now handles image URLs beginning
with `//`.
* `Text.Pandoc.ImageSize`: Parse EXIF format JPEGs. Previously
we could only get size information for JFIF format, which led
to squished images in Word documents. Closes #976.
* Removed old `MarkdownTest_1.0.3` directory (#1104).
pandoc (1.12.2.1)
* Markdown reader: Fixed regression in list parser, involving
continuation lines containing raw HTML (or even verbatim raw HTML).
pandoc (1.12.2)
* Metadata may now be included in YAML blocks in a markdown document.
For example,
---
title:
- type: main
text: My Book
- type: subtitle
text: An investigation of metadata
creator:
- role: author
text: John Smith
- role: editor
text: Sarah Jones
identifier:
- scheme: DOI
text: doi:10.234234.234/33
publisher: My Press
rights: (c) 2007 John Smith, CC BY-NC
cover-image: img/mypic.jpg
...
Metadata may still be provided using `--epub-metadata`; it will
be merged with the metadata in YAML blocks.
* EPUB writer:
+ `meta` tags are now used instead of `opf` attributes for EPUB3.
+ Insert "svg" property as needed in opf (EPUB 3).
+ Simplify `imageTypeOf` using `getMimeType`.
+ Add properties attribute to `cover-image` item for EPUB 3.
+ Don't include node for `cover.xhtml` if no cover!
+ Ensure that same identifier is used throughout (#1044).
If an identifier is given in metadata, we use that; otherwise
we generate a random uuid.
+ Add cover reference to guide element (EPUB 2) (Shaun Attfield).
Fixes an issue with Calibre putting the cover at the end of the book
if the spine has `linear="no"`. Apparently this is best practice
for other converters as well:
<http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.6>.
+ Allow `stylesheet` in metadata. The value is a path to the stylesheet.
+ Allow partial dates: `YYYY`, `YYYY-MM`.
* Markdown writer: Fix rendering of tight sublists (#1050).
Previously a spurious blank line was included after a tight sublist.
* ODT writer: Add `draw:name` attribute to `draw:frame` elements (#1069).
This is reported to be necessary to avoid an error from recent
versions of Libre Office when files contain more than one image
Thanks to wmanley for reporting and diagnosing the problem.
* ConTeXt writer: Don't hardcode figure/table placement and numbering.
Instead, let this be set in the template, using `\setupfloat`.
Thanks to on4aa and Aditya Mahajan for the suggestion (#1067).
* Implemented CSL flipflopping spans in DOCX, LaTeX, and HTML writers.
* Fixed bug with markdown intraword emphasis. Closes #1066.
* Docbook writer: Hierarchicalize block content in metadata.
Previously headers just disappeared from block-level metadata
when it was used in templates. Now we apply the 'hierarchicalize'
transformation. Note that a block headed by a level-2 header will
turn into a `<sect1>` element.
* OpenDocument writer: Skip raw HTML (#1035).
Previously it was erroneously included as verbatim text.
* HTML/EPUB writer, footnotes: Put `<sup>` tag inside `<a>` tags.
This allows better control of formatting, since the `<a>`
tags have a distinguishing class (#1049).
* Docx writer:
+ Use mime type info returned by fetchItem.
+ Fixed core metadata (#1046).
Don't create empty date nodes if no date given.
Don't create multiple `dc:creator` nodes; instead separate by
semicolons.
+ Fix URL for core-properties in `_rels/.rels` (#1046).
* Plain writer: don't print `<span>` tags.
* LaTeX writer:
+ Fix definition lists with internal links in terms (#1032).
This fix puts braces around a term that contains an internal
link, to avoid problems with square brackets.
+ Properly escape pdftitle, pdfauthor (#1059).
+ Use booktabs package for tables (thanks to Jose Luis Duran).
* Updated beamer template. Now references should work properly
(in a slide) when `--biblatex` or `--natbib` is used.
* LaTeX reader:
+ Parse contents of curly quotes or matched `"` as quotes.
+ Support `\textnormal` as span with class `nodecor`.
This is needed for pandoc-citeproc.
+ Improved citation parsing. This fixes a run-time error that occured
with `\citet{}` (empty list of keys). It also ensures that empty keys
don't get produced.
* MediaWiki reader: Add automatic header identifiers.
* HTML reader:
+ Use pandoc `Div` and `Span` for raw `<div>`, `<span>` when
`--parse-raw`.
+ Recognize `svg` tags as block level content (thanks to MinRK).
+ Parse LaTeX math if appropriate options are set.
* Markdown reader:
+ Yaml block must start immediately after `---`. If there's a blank
line after `---`, we interpreted it as a horizontal rule.
+ Correctly handle empty bullet list items.
+ Stop parsing "list lines" when we hit a block tag.
This fixes exponential slowdown in certain input, e.g.
a series of lists followed by `</div>`.
* Slides: Preserve `<div class="references">` in references slide.
* `Text.Pandoc.Writer.Shared`:
+ Fixed bug in `tagWithAttrs`. A space was omitted before key-value
attributes, leading to invalid HTML.
+ `normalizeDate`: Allow dates with year only (thanks to Shaun Attfield).
+ Fixed bug in `openURL` with `data:` URIs. Previously the base-64
encoded bytestring was returned. We now decode it so it's a proper
image!
* DocBook reader: Handle numerical attributes starting with decimal.
Also use `safeRead` instead of `read`.
* `Text.Pandoc.Parsing`:
+ Generalized type of `registerHeader`, using new type classes
`HasReadeOptions`, `HasIdentifierList`, `HasHeaderMap`.
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.
Generalize their types and export them from Parsing. (API change.)
* `Text.Pandoc.Readers.TexMath`: Export `readTeXMath'`, which attends
to display/inline. Deprecate `readTeXMath`, and use `readTeXMath'`
in all the writers. Require `texmath >= 0.6.5.2`.
* `Text.Pandoc.MIME`:
+ Add entry for `jfif`.
+ In looking up extensions, drop the encoding info.
E.g. for 'image/jpg;base64' we should lookup 'image/jpg'.
* Templates: Changed how array variables are resolved. Previously if
`foo` is an array (which might be because multiple values were set on
the command line), `$foo$` would resolve to the concatenation of the
elements of foo. This is rarely useful behavior. It has been changed
so that the first value is rendered. Of course, you can still iterate
over the values using `$for(foo)$`. This has the result that you can
override earlier settings using `-V` by putting new values later on the
command line, which is useful for many purposes.
* `Text.Pandoc`: Don't default to `pandocExtensions` for all writers.
* Allow "epub2" as synonym for "epub", "html4" for "html".
* Don't look for slidy files in data files with `--self-contained`.
* Allow `https:` command line arguments to be downloaded.
* Fixed `make_osx_package.sh` so data files embedded in `pandoc-citeproc`.
pandoc (1.12.1)
* `Text.Pandoc.Definition`: Changed default JSON serialization format.
Instead of `{"Str": "foo"}`, for example, we now have `{"t": "Str",
"c": "foo"}`. This new format is easier to work with outside of Haskell.
Incidentally, "t" stands for "tag", "c" for "contents".
* MediaWiki reader: Trim contents of `<math>` tags, to avoid problems
when converting to markdown (#1027).
* LaTeX reader:
+ Ensure that preamble doesn't contribute to the text of
the document.
+ Fixed character escaping in \url{}. Previously `\~` wasn't handled
properly, among others.
+ Parse `{groups}` as `Span`. This is needed for accurate conversion of
bibtex titles, since we need to know what was protected from
titlecase conversions.
* LaTeX writer:
+ Specially escape non-ascii characters in labels.
Otherwise we can get compile errors and other bugs when
compiled with pdflatex (#1007). Thanks to begemotv2718 for the fix.
+ Add link anchors for code blocks with identifiers (#1025).
* Throughout the code, use `isURI` instead of `isAbsoluteURI`.
It allows fragments identifiers.
* Slide formats:
+ A Div element with class "notes" is treated as speaker
notes. Currently beamer goes to `\note{}`, revealjs to
`<aside class="notes">`, and the notes are simply suppressed in
other formats (#925).
+ Fixed `. . .` (pause) on HTML slide formats. Closes #1029.
The old version caused a pause to be inserted before the first
material on a slide. This has been fixed.
+ Removed data files for s5, slideous, slidy.
Users of s5 and slideous will have to download the needed
files, as has been documented for some time in the README.
By default, slidy code will be sought on the web, as before.
* HTML writer: Insert command to typeset mathjax only in slideous output
(#966, #1012).
* RST writer: Skip spaces after display math. Otherwise we get indentation
problems, and part of the next paragraph may be rendered as part of the
math.
* OpenDocument writer: Fix formatting of strikeout code (#995),
thanks to wilx. don't use `font-face-decls` variable.
* Fixed test suite so it works with cabal sandboxes.
pandoc (1.12.0.2)
* Removed `stringable` dependency.
pandoc (1.12.0.1)
* Allow `--metadata` to be repeated for the same key to form a list.
This also has the effect that `--bibliography` can be repeated,
as before.
* Handle boolean values in `--metadata`. Note that anything not parseable
as a YAML boolean or string is treated as a literal string.
You can get a string value with "yes", or any of the strings interpretable
as booleans, by quoting it:
-M boolvalue=yes -M stringvalue='"yes"'
* LaTeX writer: Don't print references if `--natbib` or `--biblatex`
option used.
* DOCX writer: Add `settings.xml` to the zip container. Fixes a bug
in which docx files could not be read by some versions of Word
and LibreOffice (#990).
* Fixed a regression involving slide shows with bibliographies.
The Div container around references messed up the procedure for carving
a document into slides. So we now remove the surrounding Div in
`prepSlides`.
* More informative error message when a filter is not found in path.
* Depend on pandoc-types 1.12.1. This provide `ToJSONFilter`
instances for `Data a => a -> [a]` and `Data a => a -> IO [a]`.
* Don't use unicode_collation in building OSX package:
it adds something like 50MB of dependencies to the package.
* Declare alex and happy as build-tools (#986).
pandoc (1.12)
[new features]
* Much more flexible metadata, including arbitrary fields and structured
values. Metadata can be specified flexibly in pandoc markdown using
YAML metadata blocks, which may occur anywhere in the document:
---
title: Here is my title.
abstract: |
This is the abstract.
1. It can contain
2. block content
and *inline markup*
tags: [cat, dog, animal]
...
Metadata fields automatically populate template variables.
* Added `opml` (OPML) as input and output format. The `_note` attribute,
used in OmniOutliner and supported by multimarkdown, is supported.
We treat the contents as markdown blocks under a section header.
* Added `haddock` (Haddock markup) as input format (David Lazar).
* Added `revealjs` output format, for reveal.js HTML 5 slide shows.
(Thanks to Jamie F. Olson for the initial patch.)
Nested vertical stacks are used for hierarchical structure.
Results for more than one level of nesting may be odd.
* Custom writers can now be written in lua.
pandoc -t data/sample.lua
will load the script sample.lua and use it as a custom writer.
(For a sample, do `pandoc --print-default-data-file sample.lua`.)
Note that pandoc embeds a lua interpreter, so lua need not be
installed separately.
* New `--filter/-F` option to make it easier to run "filters"
(Pandoc AST transformations that operate on JSON serializations).
Filters are always passed the name of the output format, so their
behavior can be tailored to it. The repository
<https://github.com/jgm/pandocfilters> contains
a python module for writing pandoc filters in python, with
a number of examples.
* Added `--metadata/-M` option.
This is like `--variable/-V`, but actually adds to metadata, not
just variables.
* Added `--print-default-data-file` option, which allows printing
of any of pandoc's data files. (For example,
`pandoc --print-default-data-file reference.odt` will print
`reference.odt`.)
* Added syntax for "pauses" in slide shows:
This gives
. . .
me pause.
* New markdown extensions:
+ `ignore_line_breaks`: causes intra-paragraph line breaks to be ignored,
rather than being treated as hard line breaks or spaces. This is useful
for some East Asian languages, where spaces aren't used between words,
but text is separated into lines for readability.
+ `yaml_metadata_block`: Parse YAML metadata blocks. (Default.)
+ `ascii_identifiers`: This will force `auto_identifiers` to use ASCII
only. (Default for `markdown_github`.) (#807)
+ `lists_without_preceding_blankline`: Allow lists to start without
preceding blank space. (Default for `markdown_github`.) (#972)
[behavior changes]
* `--toc-level` no longer implies `--toc`.
Reason: EPUB users who don't want a visible TOC may still want
to set the TOC level for in the book navigation.
* `--help` now prints in and out formats in alphabetical order, and
says something about PDF output (#720).
* `--self-contained` now returns less verbose output (telling you
which URLs it is fetching, but not giving the full header). In
addition, there are better error messages when fetching a URL fails.
* Citation support is no longer baked in to core pandoc. Users who
need citations will need to install and use a separate filter
(`--filter pandoc-citeproc`). This filter will take `bibliography`,
`csl`, and `citation-abbreviations` from the metadata, though it
may still be specified on the command line as before.
* A `Cite` element is now created in parsing markdown whether or not
there is a matching reference.
* The `pandoc-citeproc` script will put the bibliography at the
end of the document, as before. However, it will be put inside a `Div`
element with class "references", allowing users some control
over the styling of references. A final header, if any, will
be included in the `Div`.
* The markdown writer will not print a bibliography if the
`citations` extension is enabled. (If the citations are formatted
as markdown citations, it is redundant to have a bibliography,
since one will be generated automatically.)
* Previously we used to store the directory of the first input file,
even if it was local, and used this as a base directory for finding
images in ODT, EPUB, Docx, and PDF. This has been confusing to many
users. So we now look for images relative to the current
working directory, even if the first file argument is in another
directory. Note that this change may break some existing workflows.
If you have been assuming that relative links will be interpreted
relative to the directory of the first file argument, you'll need
to make that the current directory before running pandoc. (#942)
* Better error reporting in some readers, due to changes in `readWith`:
the line in which the error occured is printed, with a caret pointing
to the column.
* All slide formats now support incremental slide view for definition lists.
* Parse `\(..\)` and `\[..\]` as math in MediaWiki reader.
Parse `:<math>...</math>` as display math. These notations are used with
the MathJax MediaWiki extension.
* All writers: template variables are set automatically from metadata
fields. However, variables specified on the command line with
`--variable` will completely shadow metadata fields.
* If `--variable` is used to set many variables with the same name,
a list is created.
* Man writer: The `title`, `section`, `header`, and `footer` can now
all be set individually in metadata. The `description` variable has been
removed. Quotes have been added so that spaces are allowed in the
title. If you have a title that begins
COMMAND(1) footer here | header here
pandoc will still parse it into a title, section, header, and
footer. But you can also specify these elements explicitly (#885).
* Markdown reader
+ Added support for YAML metadata blocks, which can come anywhere
in the document (not just at the beginning). A document can contain
multiple YAML metadata blocks.
+ HTML span and div tags are parsed as pandoc Span and Div elements.
* Markdown writer
+ Allow simple tables to be printed as grid tables,
if other table options are disabled. This means you can do
`pandoc -t markdown-pipe_tables-simple_tables-multiline_tables`
and all tables will render as grid tables.
+ Support YAML title block (render fields in alphabetical order
to make output predictable).
[API changes]
* `Meta` in `Text.Pandoc.Definition` has been changed to allow
structured metadata. (Note: existing code that pattern-matches
on `Meta` will have to be revised.) Metadata can now contain
indefinitely many fields, with content that can be a string,
a Boolean, a list of `Inline` elements, a list of `Block`
elements, or a map or list of these.
* A new generic block container (`Div`) has been added to `Block`,
and a generic inline container (`Span`) has been added to `Inline`.
These can take attributes. They will render in HTML, Textile,
MediaWiki, Org, RST and and Markdown (with `markdown_in_html`
extension) as HTML `<div>` and `<span>` elements; in other formats
they will simply pass through their contents. But they can be
targeted by scripts.
* `Format` is now a newtype, not an alias for String.
Equality comparisons are case-insensitive.
* Added `Text.Pandoc.Walk`, which exports hand-written tree-walking
functions that are much faster than the SYB functions from
`Text.Pandoc.Generic`. These functions are now used where possible
in pandoc's code. (`Tests.Walk` verifies that `walk` and `query`
match the generic traversals `bottomUp` and `queryWith`.)
* Added `Text.Pandoc.JSON`, which provides `ToJSON` and `FromJSON`
instances for the basic pandoc types. They use GHC generics and
should be faster than the old JSON serialization using
`Data.Aeson.Generic`.
* Added `Text.Pandoc.Process`, exporting `pipeProcess`.
This is a souped-up version of `readProcessWithErrorcode` that
uses lazy bytestrings instead of strings and allows setting
environment variables. (Used in `Text.Pandoc.PDF`.)
* New module `Text.Pandoc.Readers.OPML`.
* New module `Text.Pandoc.Writers.OPML`.
* New module `Text.Pandoc.Readers.Haddock` (David Lazar).
This is based on Haddock's own lexer/parser.
* New module `Text.Pandoc.Writers.Custom`.
* In `Text.Pandoc.Shared`, `openURL` and `fetchItem` now return an
Either, for better error handling.
* Made `stringify` polymorphic in `Text.Pandoc.Shared`.
* Removed `stripTags` from `Text.Pandoc.XML`.
* `Text.Pandoc.Templates`:
+ Simplified `Template` type to a newtype.
+ Removed `Empty`.
+ Changed type of `renderTemplate`: it now takes a JSON context
and a compiled template.
+ Export `compileTemplate`.
+ Export `renderTemplate'` that takes a string instead of a compiled
template.
+ Export `varListToJSON`.
* `Text.Pandoc.PDF` exports `makePDF` instead of `tex2pdf`.
* `Text.Pandoc`:
+ Made `toJsonFilter` an alias for `toJSONFilter` from `Text.Pandoc.JSON`.
+ Removed `ToJsonFilter` typeclass. `ToJSONFilter` from
`Text.Pandoc.JSON` should be used instead. (Compiling against
pandoc-types instead of pandoc will also produce smaller executables.)
* Removed the deprecated `jsonFilter` function.
+ Added `readJSON`, `writeJSON` to the API (#817).
* `Text.Pandoc.Options`:
+ Added `Ext_lists_without_preceding_blankline`,
`Ext_ascii_identifiers`, `Ext_ignore_line_breaks`,
`Ext_yaml_metadataBlock` to `Extension`.
+ Changed `writerSourceDirectory` to `writerSourceURL` and changed the
type to a `Maybe`. `writerSourceURL` is set to 'Just url' when the
first command-line argument is an absolute URL. (So, relative links
will be resolved in relation to the first page.) Otherwise, 'Nothing'.
+ All bibliography-related fields have been removed from
`ReaderOptions` and `WriterOptions`: `writerBiblioFiles`,
`readerReferences`, `readerCitationStyle`.
* The `Text.Pandoc.Biblio` module has been removed. Users of the
pandoc library who want citation support will need to use
`Text.CSL.Pandoc` from `pandoc-citeproc`.
[bug fixes]
* In markdown, don't autolink a bare URI that is followed by `</a>`
(#937).
* `Text.Pandoc.Shared`
+ `openURL` now follows redirects (#701), properly handles `data:`
URIs, and prints diagnostic output to stderr rather than stdout.
+ `readDefaultDataFile`: normalize the paths. This fixes bugs in
`--self-contained` on pandoc compiled with `embed_data_files` (#833).
+ Fixed `readDefaultDataFile` so it works on Windows.
+ Better error messages for `readDefaultDataFile`. Instead of
listing the last path tried, which can confuse people who are
using `--self-contained`, so now we just list the data file name.
+ URL-escape pipe characters. Even though these are legal, `Network.URI`
doesn't regard them as legal in URLs. So we escape them first (#535).
* Mathjax in HTML slide shows: include explicit "Typeset" call.
This seems to be needed for some formats (e.g. slideous) and won't
hurt in others (#966).
* `Text.Pandoc.PDF`
+ On Windows, create temdir in working directory, since the system
temp directory path may contain tildes, which can cause
problems in LaTeX (#777).
+ Put temporary output directory in `TEXINPUTS` (see #917).
+ `makePDF` tries to download images that are not found locally,
if the first argument is a URL (#917).
+ If compiling with `pdflatex` yields an encoding error, offer
the suggestion to use `--latex-engine=xelatex`.
* Produce automatic header identifiers in parsing textile, RST,
and LaTeX, unless `auto_identifiers` extension is disabled (#967).