-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
/
changelog
3092 lines (2388 loc) · 130 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.8.1)
* Added `--ascii` option. Currently supported only in HTML writer,
which it causes to use numerical entities instead of UTF-8.
* EPUB writer: `--toc` now works to provide a table of contents
at the beginning of each chapter.
* LaTeX writer: Change figure defaults to `htbp`.
This prevents "too many unprocessed floats." Resolves
Issue #285.
* `Text.Pandoc.UTF8`: Encode filenames even when using recent
base.
* `markdown2pdf`: Fixed filename encoding issues. With help from Paulo
Tanimoto. Resolves Issue #286.
* HTML writer: Put line breaks in section divs.
* `Text.Pandoc.Shared`: Make `writerSectionDivs` default to False.
pandoc (1.8.0.3)
* Fixed Source-repository stanza in cabal file.
pandoc (1.8.0.2)
* HTML writer:
+ Stringify alt text instead of converting to HTML.
+ Break lines after block elements, not inside tags.
HTML output now closely resembles that of tidy. Resolves Issue #134.
* Markdown reader: Fixed bug in footnote block parser (pointed out
by Jesse Rosenthal). The problem arose when the blank line
at the end of a footnote block contained indenting spaces.
* Shared: Improved 'normalize' function so it normalizes Spaces too.
In normal form, Space elements only occur to separate two non-Space
elements. So, we never have [Space], or [, ..., Space].
* Tests:
+ Improved Arbitrary instance.
+ Added timeout for test instances.
* README:
+ Added section on four-space rule for lists. Resolves Issue #283.
+ Clarified optional arguments on math options.
* markdown2pdf: Fixed bug with output file extensions.
Previously `markdown2pdf test.txt -o test.en.pdf` would produce
`test.pdf`, not `test.en.pdf`. Thanks to Paolo Tanimoto for the fix.
pandoc (1.8.0.1)
* Revised Interact.hs so that it works with the CPP macros
in the UTF8 module.
* Revised Setup.hs so that we don't call MakeManPage.hs unless
the man pages are out of date.
pandoc (1.8)
[new features]
* Support for citations using Andrea Rossato's `citeproc-hs` 0.3.
You can now write, for example,
Water is wet [see @doe99, pp. 33-35; also @smith04, ch. 1].
and, when you process your document using `pandoc`, specifying
a citation style using `--csl` and a bibliography using `--bibliography`,
the citation will be replaced by an appropriately formatted
citation, and a list of works cited will be added to the end
of the document.
This means that you can switch effortlessly between different citation
and bibliography styles, including footnote, numerical, and author-date
formats. The bibliography can be in any of the following formats: MODS,
BibTeX, BibLaTeX, RIS, EndNote, EndNote XML, ISI, MEDLINE, Copac, or JSON.
See the README for further details.
Citations are supported in the markdown reader, using a special
syntax, and in the LaTeX reader, using natbib or biblatex syntax.
(Thanks to Nathan Gass for the natbib and biblatex support.)
* New `textile` reader and writer. Thanks to Paul Rivier for contributing
the `textile` reader, an almost complete implementation of the textile
syntax used by the ruby [RedCloth library](http://redcloth.org/textile).
Resolves Issue #51.
* New `org` writer, for Emacs Org-mode, contributed by Puneeth Chaganti.
* New `json` reader and writer, for reading and writing a JSON
representation of the native Pandoc AST. These are much faster
than the `native` reader and writer, and should be used for
serializing Pandoc to text. To convert between the JSON representation
and native Pandoc, use `encodeJSON` and `decodeJSON` from
`Text.JSON.Generic`.
* A new `jsonFilter` function in `Text.Pandoc` makes it easy
to write scripts that transform a JSON-encoded pandoc document.
For example:
-- removelinks.hs - removes links from document
import Text.Pandoc
main = interact $ jsonFilter $ bottomUp removeLink
where removeLink (Link xs _) = Emph xs
removeLink x = x
To use this to remove links while translating markdown to LaTeX:
pandoc -t json | runghc removelinks.hs | pandoc -f json -t latex
* Attributes are now allowed in inline `Code` elements, for example:
In this code, `ulist ! [theclass "special"] << elts`{.haskell} is...
The attribute syntax is the same as for delimited code blocks.
`Code` inline has an extra argument place for attributes, just like
`CodeBlock`. Inline code will be highlighted in HTML output, if pandoc
is compiled with highlighting support. Resolves Issue #119.
* New `RawBlock` and `RawInline` elements (replacing `RawHtml`,
`HtmlInline`, and `TeX`) provide lots of flexibility in writing
scripts to transform Pandoc documents. Scripts can now change
how each element is rendered in each output format.
* You can now define LaTeX macros in markdown documents, and pandoc
will apply them to TeX math. For example,
\newcommand{\plus}[2]{#1 + #2}
$\plus{3}{4}$
yields `3+4`. Since the macros are applied in the reader, they
will work in every output format, not just LaTeX.
* LaTeX macros can also be used in LaTeX documents (both in math
and in non-math contexts).
* A new `--mathjax` option has been added for displaying
math in HTML using MathJax. Resolves issue #259.
* Footnotes are now supported in the RST reader. (Note, however,
that unlike docutils, pandoc ignores the numeral or symbol used in
the note; footnotes are put in an auto-numbered ordered list.)
Resolves Issue #258.
* A new `--normalize` option causes pandoc to normalize the AST
before writing the document. This means that, for example,
`*hi**there*` will be rendered as `<em>hithere</em>`
instead of `<em>hi</em><em>there</em>`. This is not the default,
because there is a significant performance penalty.
* A new `--chapters` command-line option causes headers
in DocBook, LaTeX, and ConTeXt to start with "chapter" (level one).
Resolves Issue #265.
* In DocBook output, `<chapter>` is now used for top-level
headers if the template contains `<book>`. Resolves Issue #265.
* A new `--listings` option in `pandoc` and `markdown2pdf` causes
the LaTeX writer to use the listings package for code blocks.
(Thanks to Josef Svennigsson for the pandoc patch, and Etienne
Millon for the markdown2pdf patch.)
* `markdown2pdf` now supports `--data-dir`.
* URLs in autolinks now have class "url" so they can be styled.
* Improved prettyprinting in most formats. Lines will be wrapped
more evenly and duplicate blank lines avoided.
* New `--columns` command-line option sets the column width for
line wrapping and relative width calculations for tables.
* Made `--smart` work in HTML, RST, and Textile readers, as well
as markdown.
* Added `--html5` option for HTML5 output.
* Added support for listings package in LaTeX reader
(Puneeth Chaganti).
* Added support for simple tables in the LaTeX reader.
* Added support for simple tables in the HTML reader.
* Significant performance improvements in many readers and writers.
[API and program changes]
* Moved `Text.Pandoc.Definition` from the `pandoc` package to a new
auxiliary package, `pandoc-types`. This will make it possible for other
programs to supply output in Pandoc format, without depending on the whole
pandoc package.
* Added `Attr` field to `Code`.
* Removed `RawHtml`, `HtmlInline`, and `TeX` elements; added generic
`RawBlock` and `RawInline`.
* Moved generic functions to `Text.Pandoc.Generic`. Deprecated
`processWith`, replacing it with two functions, `bottomUp` and `topDown`.
Removed previously deprecated functions `processPandoc` and `queryPandoc`.
* Added `Text.Pandoc.Builder`, for building `Pandoc` structures.
* `Text.Pandoc` now exports association lists `readers` and `writers`.
* Added `Text.Pandoc.Readers.Native`, which exports `readNative`.
`readNative` can now read full pandoc documents, block lists, blocks,
inline lists, or inlines. It will interpret `Str "hi"`
as if it were `Pandoc (Meta [] [] []) [Plain [Str "hi"]]`.
This should make testing easier.
* Removed deprecated `-C/--custom-header` option.
Use `--template` instead.
* `--biblio-file` has been replaced by `--bibliography`.
`--biblio-format` has been removed; pandoc now guesses the format
from the file extension (see README).
* pandoc will treat an argument as a URI only if it has an
`http(s)` scheme. Previously pandoc would treat some
Windows pathnames beginning with `C:/` as URIs.
* The `--sanitize-html` option and the `stateSanitize` field in
`ParserState` have been removed. Sanitization is better done in the
resulting HTML using `xss-sanitize`, which is based on pandoc's
sanitization, but improved.
* pandoc now adds a newline to the end of its output in fragment
mode (= not `--standalone`).
* Added support for `lang` in `html` tag in the HTML template,
so you can do `pandoc -s -V lang=es`, for example.
* `highlightHtml` in `Text.Pandoc.Highlighting` now takes
a boolean argument that selects between "inline" and
"block" HTML.
* `Text.Pandoc.Writers.RTF` now exports `rtfEmbedImage`.
Images are embedded in RTF output when possible (png, jpeg).
Resolves Issue #275.
* Added `Text.Pandoc.Pretty`. This is better suited for pandoc than the
`pretty` package. Changed all writers that used
`Text.PrettyPrint.HughesPJ` to use `Text.Pandoc.Pretty` instead.
* Rewrote `writeNative` using the new prettyprinting module. It is
now much faster. The output has been made more consistent and compressed.
`writeNative` is also now sensitive to writerStandalone`, and will simply
`print a block list if writerStandalone` is False.
* Removed `Text.Pandoc.Blocks`. `Text.Pandoc.Pretty` allows you to define
blocks and concatenate them, so a separate module is no longer needed.
* `Text.Pandoc.Shared`:
+ Added `writerColumns`, `writerChapters`, and `writerHtml5` to
`WriterOptions`.
+ Added `normalize`.
+ Removed unneeded prettyprinting functions:
`wrapped`, `wrapIfNeeded`, `wrappedTeX`, `wrapTeXIfNeeded`, `hang'`,
`BlockWrapper`, `wrappedBlocksToDoc`.
+ Made `splitBy` take a test instead of an element.
+ Added `findDataFile`, refactored `readDataFile`.
+ Added `stringify`. Rewrote `inlineListToIdentifier` using `stringify`.
+ Fixed `inlineListToIdentifier` to treat '\160' as ' '.
* `Text.Pandoc.Readers.HTML`:
+ Removed `rawHtmlBlock`, `anyHtmlBlockTag`, `anyHtmlInlineTag`,
`anyHtmlTag`, `anyHtmlEndTag`, `htmlEndTag`, `extractTagType`,
`htmlBlockElement`, `htmlComment`
+ Added `htmlTag`, `htmlInBalanced`, `isInlineTag`, `isBlockTag`,
`isTextTag`
* Moved `smartPunctuation` from `Text.Pandoc.Readers.Markdown`
to `Text.Pandoc.Readers.Parsing`, and parameterized it with
an inline parser.
* Ellipses are no longer allowed to contain spaces.
Previously we allowed '. . .', ' . . . ', etc. This caused
too many complications, and removed author's flexibility in
combining ellipses with spaces and periods.
* Allow linebreaks in URLs (treat as spaces). Also, a string of
consecutive spaces or tabs is now parsed as a single space. If you have
multiple spaces in your URL, use `%20%20`.
* `Text.Pandoc.Parsing`:
+ Removed `refsMatch`.
+ Hid `Key` constructor.
+ Removed custom `Ord` and `Eq` instances for `Key`.
+ Added `toKey` and `fromKey` to convert between `Key` and `[Inline]`.
+ Generalized type on `readWith`.
* Small change in calculation of relative widths of table columns.
If the size of the header > the specified column width, use
the header size as 100% for purposes of calculating
relative widths of columns.
* Markdown writer now uses some pandoc-specific features when `--strict`
is not specified: `\` newline is used for a hard linebreak instead of
two spaces then a newline. And delimited code blocks are used when
there are attributes.
* HTML writer: improved gladTeX output by setting ENV appropriately
for display or inline math (Jonathan Daugherty).
* LaTeX writer: Use `\paragraph`, `\subparagraph` for level 4,5 headers.
* LaTeX reader:
+ `\label{foo}` and `\ref{foo}` now become `{foo}` instead of `(foo)`.
+ `\index{}` commands are skipped.
* Added `fontsize` variable to default LaTeX template.
This makes it easy to set the font size using `markdown2pdf`:
`markdown2pdf -V fontsize=12pt input.txt`.
* Fixed problem with strikeout in LaTeX headers when using
hyperref, by adding a command to the default LaTeX template
that disables `\sout` inside pdf strings. Thanks to Joost Kremers
for the fix.
* The `COLUMNS` environment variable no longer has any effect.
[under-the-hood improvements]
* Pandoc now compiles with GHC 7. (This alone leads to a
significant performance improvement, 15-20%.)
* Completely rewrote HTML reader using tagsoup as a lexer. The
new reader is faster and more accurate. Unlike the
old reader, it does not get bogged down on some input
(Issues #277, 255). And it handles namespaces in tags
(Issue #274).
* Replaced `escapeStringAsXML` with a faster version.
* Rewrote `spaceChar` and some other parsers in Text.Pandoc.Parsing
for a significant performance boost.
* Improved performance of all readers by rewriting parsers.
* Simplified Text.Pandoc.CharacterReferences by using
entity lookup functions from TagSoup.
* `Text.Pandoc.UTF8` now uses the unicode-aware IO functions
from `System.IO` if base >= 4.2. This gives support for
windows line endings on windows.
* Remove duplications in documentation by generating the
pandoc man page from README, using `MakeManPage.hs`.
* README now includes a full description of markdown syntax,
including non-pandoc-specific parts. A new `pandoc_markdown`
man page is extracted from this, so you can look up markdown
syntax by doing `man pandoc_markdown`.
* Completely revised test framework (with help from Nathan Gass).
The new test framework is built when the `tests` Cabal flag is set. It
includes the old integration tests, but also some new unit and quickcheck
tests. Test output has been much improved, and you can now specify a glob
pattern after `cabal test` to indicate which tests should be run;
for example `cabal test citations` will run all the citation tests.
* Added a shell script, `stripansi.sh`, for filtering ANSI control
sequences from test output: `cabal test | ./stripansi.sh > test.log`.
* Added `Interact.hs` to make it easier to use ghci while developing.
`Interact.hs` loads `ghci` from the `src` directory, specifying
all the options needed to load pandoc modules (including
specific package dependencies, which it gets by parsing
dist/setup-config).
* Added `Benchmark.hs`, testing all readers + writers using criterion.
* Added `stats.sh`, to make it easier to collect and archive
benchmark and lines-of-code stats.
* Added upper bounds to all cabal dependencies.
* Include man pages in extra-source-files. This allows users to
install pandoc from the tarball without needing to build the man
pages.
[bug fixes]
* Filenames are encoded as UTF8. Resolves Issue #252.
* Handle curly quotes better in `--smart` mode. Previously, curly quotes
were just parsed literally, leading to problems in some output formats.
Now they are parsed as `Quoted` inlines, if `--smart` is specified.
Resolves Issue #270.
* Text.Pandoc.Parsing: Fixed bug in grid table parser.
Spaces at end of line were not being stripped properly,
resulting in unintended LineBreaks.
* Markdown reader:
+ Allow HTML comments as inline elements in markdown.
So, `aaa <!-- comment --> bbb` can be a single paragraph.
+ Fixed superscripts with links: `^[link](/foo)^` gets
recognized as a superscripted link, not an inline note followed by
garbage.
+ Fixed regression, making markdown reference keys case-insensitive again.
Resolves Issue #272.
+ Properly handle abbreviations (like `Mr.`) at the end of a line.
+ Better handling of intraword underscores, avoiding exponential
slowdowns in some cases. Resolves Issue #182.
+ Fixed bug in alignments in tables with blank rows in the header.
* RST reader:
+ Field lists now allow spaces in field names, and
block content in field values. (Thanks to Lachlan Musicman
for pointing out the bug.)
+ Definition list items are now always `Para` instead of
`Plain`, matching behavior of `rst2xml.py`.
+ In image blocks, the description is parsed properly and
used for the alt attribute, not also the title.
+ Skip blank lines at beginning of file. Resolves
Debian #611328.
* LaTeX reader:
+ Improved parsing of preamble.
Previously you'd get unexpected behavior on a document that
contained `\begin{document}` in, say, a verbatim block.
+ Allow spaces between `\begin` or `\end` and `{`.
+ Support `\L` and `\l`.
+ Skip comments inside paragraphs.
* LaTeX writer:
+ Escape strings in `\href{..}`.
+ In nonsimple tables, put cells in `\parbox`.
* OpenDocument writer: don't print raw TeX.
* Markdown writer:
+ Fixed bug in `Image`. URI was getting unescaped twice!
+ Avoid printing extra blank lines at the end if there are
no notes or references.
* LaTeX and ConTeXt: Escape `[` and `]` as `{[}` and `{]}`.
This avoids unwanted interpretation as an optional argument.
* ConTeXt writer: Fixed problem with inline code. Previously
`}` would be rendered `\type{}}`. Now we check the string for '}' and '{'.
If it contains neither, use `\type{}`; otherwise use `\mono{}`
with an escaped version of the string.
* `:` now allowed in HTML tags. Resolves Issue #274.
pandoc (1.6)
[ John MacFarlane ]
* New EPUB and HTML Slidy writers. (Issue #122)
- EPUB is a standard ebook format, used in Apple's iBooks for
the iPad and iPhone, Barnes and Noble's nook reader, the Sony
reader, and many other devices.
- Slidy, like S5, is a system for producing HTML+javascript slide
shows.
* All input is assumed to be UTF-8, no matter what the locale and ghc
version, and all output is UTF-8. This reverts to pre-1.5 behavior.
Also, a BOM, if present, is stripped from the input.
* Markdown now supports grid tables, whose cells can contain
arbitrary block elements. (Issue #43)
* Sequentially numbered example lists in markdown with `@` marker.
* Markdown table captions can begin with a bare colon and no longer need
to include the English word "table." Also, a caption can now occur
either before or after the table. (Issue #227)
* New command-line options:
- `--epub-stylesheet` allows you to specify a CSS file that will
be used to style your ebook.
- `--epub-metadata` allows you to specify metadata for the ebook.
- `--offline` causes the generated HTML slideshow to include all
needed scripts and stylesheets.
- `--webtex` causes TeX math to be converted to images using the
Google Charts API (unless a different URL is specified).
- `--section-divs` causes div tags to be added around each section
in an HTML document. (Issue #230, 239)
* Default behavior of S5 writer in standalone mode has changed:
previously, it would include all needed scripts and stylesheets
in the generated HTML; now, only links are included unless
the `--offline` option is used.
* Default behavior of HTML writer has changed. Between 1.2 and 1.5,
pandoc would enclose sections in div tags with identifiers on the
div tags, so that the sections can be manipulated in javascript.
This caused undesirable interactions with raw HTML div tags. So,
starting with 1.6, the default is to put the identifiers directly
on the header tags, and not to include the divs. The `--section-divs`
option selects the 1.2-1.5 behavior.
* API changes:
- `HTMLMathMethod`: Added `WebTeX`, removed `MimeTeX`.
- `WriterOptions`: Added `writerUserDataDir`, `writerSourceDirectory`,
`writerEPUBMetadata` fields. Removed `writerIncludeBefore`,
`writerIncludeAfter`.
- Added `headerShift` to `Text.Pandoc.Shared`.
- Moved parsing code and `ParserState` from `Text.Pandoc.Shared`
to a new module, `Text.Pandoc.Parsing`.
- Added `stateHasChapters` to `ParserState`.
- Added `HTMLSlideVariant`.
- Made `KeyTable` a map instead of an association list.
- Added accessors for `Meta` fields (`docTitle`, `docAuthors`,
`docDate`).
- `Pandoc`, `Meta`, `Inline`, and `Block` have been given `Ord`
instances.
- Reference keys now have a type of their own (`Key`), with its
own `Ord` instance for case-insensitive comparison.
- Added `Text.Pandoc.Writers.EPUB`.
- Added `Text.Pandoc.UUID`.
- Removed `Text.Pandoc.ODT`, added `Text.Pandoc.Writers.ODT`.
Removed `saveOpenDocumentAsODT`, added `writeODT`.
- Added `Text.Pandoc.Writers.Native` and `writeNative`.
Removed `prettyPandoc`.
- Added `Text.Pandoc.UTF8` for portable UTF8 string IO.
- Removed `Text.Pandoc.Writers.S5` and the `writeS5` function.
Moved `s5Includes` to a new module, `Text.Pandoc.S5`.
To write S5, you now use `writeHtml` with `writerSlideVariant`
set to `S5Slides` or `SlidySlides`.
* Template changes. If you use custom templates, please update them,
particularly if you use syntax highlighting with pandoc. The old HTML
templates hardcoded highlighting CSS that will no longer work with
the most recent version of highlighting-kate.
- HTML template: avoid empty meta tag if no date.
- HTML template: Use default highlighting CSS from highlighting-kate
instead of hard-coding the CSS into the template.
- HTML template: insert-before text goes before the title, and
immediately after the <body> tag, as documented. (Issue #241)
- Added slidy and s5 templates.
- Added amssymb to preamble of latex template. (github Issue 1)
* Removed excess newlines at the end of output. Note: because output
will not contain an extra newline, you may need to make adjustments
if you are inserting pandoc's output into a template.
* In S5 and slidy, horizontal rules now cause a new slide, so you
are no longer limited to one slide per section.
* Improved handling of code in man writer. Inline code is now monospace,
not bold, and code blocks now use .nf (no fill) and .IP (indented para).
* HTML reader parses `<tt>` as Code. (Issue #247)
* html+lhs output now contains bird tracks, even when compiled without
highlighting support. (Issue #242)
* Colons are now no longer allowed in autogenerated XML/HTML identifiers,
since they have a special meaning in XML.
* Code improvements in ODT writer. Remote images are now replaced with
their alt text rather than a broken link.
* LaTeX reader improvements:
- Made latex `\section`, `\chapter` parsers more forgiving of
whitespace.
- Parse `\chapter{}` in latex.
- Changed `rawLaTeXInline` to accept `\section`, `\begin`, etc.
- Use new `rawLaTeXInline'` in LaTeX reader, and export `rawLaTeXInline`
for use in markdown reader.
- Fixes bug wherein `\section{foo}` was not recognized as raw TeX
in markdown document.
* LaTeX writer: images are automatically shrunk if they would extend
beyond the page margin.
* Plain, markdown, RST writers now use unicode for smart punctuation.
* Man writer converts math to unicode when possible, as in other writers.
* `markdown2pdf` can now recognize citeproc options.
* Command-line arguments are converted to UTF-8. (Issue #234)
* `Text.Pandoc.TeXMath` has been rewritten to use texmath's parser.
This allows it to handle a wider range of formulas. Also, if a formula
cannot be converted, it is left in raw TeX; formulas are no longer
partially converted.
* Unicode curly quotes are left alone when parsing smart quotes. (Issue
#143)
* Cabal file changes:
- Removed parsec < 3 restriction.
- Added 'threaded' flag for architectures where GHC lacks a threaded
runtime.
- Use 'threaded' only for markdown2pdf; it is not needed for pandoc.
- Require highlighting-kate 0.2.7.
* Use explicit imports from `Data.Generics`. Otherwise we have a
conflict with the 'empty' symbol, introduced in syb >= 0.2. (Issue #237)
* New data files: slidy/slidy.min.js, slidy/slidy.min.css, epub.css.
pandoc (1.5.1.1)
[ John MacFarlane ]
* Fixed uniqueIdent in Shared so that header identifiers work as
advertized in the README and are are valid XHTML names.
pandoc (1.5.1)
[ John MacFarlane ]
* Fixed treatment of unicode characters in URIs.
+ Shared now exports escapeURI and unescapeURI. These handle
UTF8 encoding and decoding as well as URI escaping/unescaping.
+ Shared: uri and emailAddress now return a pair of the original
parsed text and the escaped URI (in the latter case, with
the mailto: prefix).
+ HTML reader: unsanitaryURI has been modified to allow unicode
high characters in a URI.
+ Readers: All link and image URIs are now escaped using
escapeURI.
+ Markdown and RST writers: unescapeURI is used so that URIs
in these formats are human-readable.
* Setup.hs: Don't assume that the build directory is "dist".
Instead, get it from localBuildInfo.
* OpenDocument writer: Use a Map for stTextStyleAttr.
This avoids duplicates (and invalid xml). Resolves Issue #222.
pandoc (1.5.0.1)
[ John MacFarlane ]
* HTML writer: Fixed error in math writer (with MathML option)
that caused an infinite loop for unparsable MathML.
pandoc (1.5)
[ John MacFarlane ]
* Added --mathml option. When this is selected, pandoc will convert
TeX math into MathML.
+ Added data/MathMLinHTML.js, which is included when no URL is
provided for --mathml. This allows MathML to be displayed (in
better browsers) as text/html.
+ Removed Text.Pandoc.LaTeXMathML. The module was no longer
necessary; it was replaced by two lines in pandoc.hs.
+ Replaced LaTeXMathML.js.commend and LaTeXMathML.js.packed with a
single combined file, LaTeXMathML.js.
* Added --data-dir option.
This specifies a user data directory. If not specified, will default
to ~/.pandoc on unix or Application Data\pandoc on Windows.
Files placed in the user data directory will override system default
data files.
* Added Maybe datadir parameter to readDataFile, saveOpenDocumentAsODT,
latexMathMLScript, s5HeaderIncludes, and getDefaultTemplate. If
Nothing, no user directory is searched for an override.
* Added 'plain' output format. This is similar to markdown, but
removes links, pictures, inline formatting, and most anything that
looks even vaguely markupish. The function writePlain is exported by
Text.Pandoc.Writers.Markdown, with which it shares most of its code.
* Allow multi-line titles and authors in meta block.
Titles may span multiple lines, provided continuation lines
begin with a space character. Separate authors may be put on
multiple lines, provided each line after the first begins with
a space character. Each author must fit on one line. Multiple
authors on a single line may still be separated by a semicolon.
Based on a patch by Justin Bogner.
* When given an absolute URI as parameter, pandoc will try to fetch
the content via HTTP. So you can do:
'pandoc -r html -w markdown http://www.fsf.org'
Adds dependency on HTTP.
* Made HTML reader much more forgiving.
+ Incorporated idea (from HXT) that an element can be closed
by an open tag for another element.
+ Javascript is partially parsed to make sure that a <script>
section is not closed by a </script> in a comment or string.
+ More lenient non-quoted attribute values.
Now we accept anything but a space character, quote, or <>.
This helps in parsing e.g. www.google.com!
+ Bare & signs are now parsed as a string. This is a common
HTML mistake.
+ Skip a bare < in malformed HTML.
* Removed html2markdown and hsmarkdown.
+ html2markdown is no longer needed, since you can now pass URI
arguments to pandoc and directly convert web pages. (Note,
however, that pandoc assumes the pages are UTF8. html2markdown
made an attempt to guess the encoding and convert them.)
+ hsmarkdown is pointless -- a large executable that could be
replaced by 'pandoc --strict'.
* In most writers, an image in a paragraph by itself is now rendered
as a figure, with the alt text as the caption. (Texinfo, HTML, RST,
MediaWiki, Docbook, LaTeX, ConTeXt, HTML.) Other images are
rendered inline.
* Depend on extensible-exceptions. This allows pandoc to be compiled
on GHC 6.8.
* Added --base-header-level option. For example, --base-header-level=2
will change level 1 headers to level 2, level 2 to level 3, etc.
Closes Debian #563416.
* Incomplete support for RST tables (simple and grid).
Thanks to Eric Kow. Colspans and rowspans not yet supported.
* Added accessors (docTitle, docAuthors, docDate) to Meta type.
* MediaWiki writer: format links with relative URLs as wikilinks.
The new rule: If the link target is an absolute URL, an external
link is created. Otherwise, a wikilink is created.
* Text.Pandoc.Shared: Export uniqueIdent, and don't allow tilde in
identifier. Note: This may break links to sections that involve
tildes.
* Markdown(+lhs) reader: handle "inverse bird tracks."
Inverse bird tracks (<) are used for haskell example code that is not
part of the literate Haskell program. Resolves Issue #211.
* LaTeX reader:
+ Recognize '\ ' (interword space).
+ Recognize nonbreaking space '~'.
+ Ignore \section, \pdfannot, \pdfstringdef. Ignore alt title in
section headers. Don't treat \section as inline LaTeX.
Resolves Issue #202.
+ LaTeX reader: allow any special character to be escaped.
Resolves Issue #221.
+ LaTeX reader: treat \paragraph and \subparagraph as level 4, 5
headers. Resolves Issue #207.
* Use template variables for include-before/after.
+ These options now imply -s; previously they worked also in fragment
mode.
+ Users can now adjust position of include-before and include-after
text in the templates.
+ Default position of include-before moved back (as it was before 1.4)
before table of contents.
+ Resolves Issue #217.
* Don't print an empty table header: (all writers).
Resolves Issue #210.
* HTML, Docbook writer: Use tbody, thead, and cols in tables.
* HTML writer: Don't include TOC div if table of contents is empty.
* Markdown writer: Fixed citations.
Previously the markdown writer printed raw citation codes, e.g.
[geach1970], rather than the expanded citations provided by
citeproc, e.g. (Geach 1970). Now it prints the expanded citations.
This means that the document produced can be processed as a markdown
document without citeproc. Thanks to dsanson for reporting, and
Andrea Rossato for the patch.
* Improved and simplified title block in context template.
Previously it caused an error if there was no title.
This method should also be easier for users to customize.
* Markdown reader:
+ Treat p., pp., sec., ch., as abbreviations in smart mode.
+ Disallow blank lines in inline code span.
+ Allow footnotes to be indented < 4 spaces.
This fixes a regression. A test case has been added.
+ Escape spaces in URLs as %20. Previously they were incorrectly
escaped as +, which is appropriate only for the query part of
a URL. Resolves Issue #220.
+ Require two spaces after capital letter + period for list item.
Otherwise "E. coli" starts a list. This might change the semantics
of some existing documents, since previously the two-space
requirement was only enforced when the second word started
with a capital letter. But it is consistent with the existing
documentation and follows the principle of least surprise.
Resolves Issue #212.
* LaTeX template: redefine labelwidth when using enumerate package.
Otherwise the list labels (numbers) often extend past the left
margin, which looks bad.
* Mediawiki writer: Don't print a "== Notes ==" header before
references. This is too English-centric. Writers can provide their
own header at the end of the document.
* Promoted mediawiki headers. '= head =' is now level 1, '== head =='
level 2, etc. This seems to be correct; it's only by convention
that wikipedia articles have level 2 headers at most.
Patch due to Eric Kow.
* RunTests.hs: Set LANG to a UTF-8 locale. Use 'pandoc --data-dir=' so
data files don't need to have been installed. This removes the need to
set HOME.
* HTML reader:
+ Handle spaces before <html>. Resolves Issue #216.
+ Be forgiving in parsing a bare list within a list.
The following is not valid xhtml, but the intent is clear:
<ol>
<li>one</li>
<ol><li>sub</li></ol>
<li>two</li>
</ol>
We'll treat the <ol> as if it's in a <li>. Resolves Issue #215.
* Updated INSTALL instructions. cabal method is now promoted.
* Updated markdown2pdf man page. It no longer says all pandoc options
are accepted.
* README/man pages: Removed advice to pipe through tidy before HTML
reader. This is obsolete, now that we have a forgiving HTML parser.
* LaTeX writer: set numbersections template variable, so
the section numbering options work again.
* Removed obsolete Makefile.
* Website: renamed index.txt.in -> index.txt.
* New batch file to make-windows-installer.
+ Removed old Makefile.windows
+ Added make-windows-installer.bat
+ Modified default installer name in pandoc-setup.iss
* Removed freebsd and macports directories.
They are no longer up to date.
* Setup.hs:
+ Made man page building sensitive to build verbosity.
+ Improved detection of highlighting support in test hook.
+ Install wrapper scripts into cabal bin directory.
+ Also simplified installManpages.
+ Setup.hs: install manpages to mandir. Code borrowed from darcs.
* Changed default of writerXeTeX to False.
* HTML writer: don't include empty UL if --toc but no sections.
Resolves Issue #199.
* LaTeX writer:
+ If book, report, or memoir documentclass, use \chapter{}
for first-level headers. Otherwise use \section{}.
+ Removed stLink, link template variable. Reason: we now always
include hyperref in the template.
* LaTeX template:
+ Only show \author if there are some.
+ Always include hyperref package. It is used not just for links but
for toc, section heading bookmarks, footnotes, etc. Also added
unicode=true on hyperref options.
* markdown2pdf: always do at least two runs. hyperref bookmarks
require this.
* cabal file: Removed unneeded dependency on template-haskell.
* Windows installer - fixed bug in data file locations.
Resolves Issue #197.
* Deprecated --custom-header in documentation.
Removed old "Custom Headers" section in README.
pandoc (1.4)
[ John MacFarlane ]
* Pandoc will now compile with either GHC 6.10 or 6.12.
+ Don't use System.IO.UTF8 when compiling with 6.12
+ Use -fno-warn-unused-do-bind option when compiling with 6.12
* Replaced old headers with templates. Now users have much more
control over the way documents appear in --standalone mode,
and writer code is simplified. Resolves Issues #59, 147.
Every effort has been made to retain backwards compatibilty.
So, the --custom-header option should still work as before.
+ Added Text.Pandoc.Templates. This provides functions for
retrieving default templates and for rendering templates.
+ System templates (in the pandoc data directory) can be
overridden by user templates in $HOME/.pandoc/templates.
+ Removed Text.Pandoc.DefaultHeaders.
+ Removed data/headers directory.
+ Added templates directory.
+ Added writerTemplate and writerVariables fields to WriterOptions.
+ Removed writerTitlePrefix, writerHeader fields from WriterOptions.
+ Changed --print-default-header to --print-default-template.
+ Added --template option.
+ Added -V/--variable option to set custom template variables.
* Pandoc no longer requires Template Haskell. Resolves Issue #186.
+ Removed need for TH in ODT module. Instead get reference.odt from
data file at run time.
+ Removed TH dependency from S5 module. S5 module now exports
s5HeaderIncludes, which pandoc.hs includes if writer is s5 and
standalone.
+ Refactored LaTeXMathML not to use TH.
* Meta is now Meta [Inline] [[Inline]] [Inline] rather than
Meta [Inline] [String] String. Authors and date in Meta are now lists
of Inline elements rather than raw strings. This means that they can
be formatted and can include footnotes. NOTE: This may be a breaking
change for those using pandoc as a library.
* Added readDataFile to Text.Pandoc.Shared. This retrieves
a data file from the user pandoc data directory (~/.pandoc
on unix), or, if not found there, from the system data
directory ($CABALDIR/shared/pandoc-VERSION/). All data
files, including templates, LaTeXMathML.js, s5 styles,
and reference.odt, can be overridden by the user.
* s5 files moved from data/ui/default to s5/default.
* Use unicode instead of entities in HTML and XML output. Resolves
Issue #163.
* Prettier HTML footnote references: put anchor inside sup,
instead of other way. Resolves Issue #191. Thanks to
infinity0x.
* Added --xetex option to pandoc and markdown2pdf.
If --xetex is specified, pandoc produces latex suitable for
processing by xelatex, and markdown2pdf uses xelatex to create
the PDF. Resolves Issue #185.
* RTF writer: multiple authors now occupy multiple paragraphs rather
than using a line break.
* Man writer: now the "--after-body" will come after the "AUTHORS"
section, whereas before it would come before it. This is a
slight break from backwards compatibility.
* Added --reference-odt option, so users may customize the styles
used in pandoc-generated ODT files. Users may also place a
default reference.odt in the ~\.pandoc directory.
* ODT writer:
+ Indented and line-broke styles.xml so it can be modified more easily.
+ Omitted some unnecessary style declarations.
+ Don't wrap text in OpenDocument writer. The tags are too long, making
wrapping ugly and pointless.
* LaTeX reader: use \\ to separate multiple authors.
* Markdown reader: use ; as separator between authors.
This allows you to use ',' within author names: e.g. "John Jones, Jr."
* S5 writer: use linebreak to separate authors in title page.
* RST reader: Allow :: before lhs code block. The RST spec requires the
:: before verbatim blocks. This :: should not be treated as literal
colons. Resolves Issue #189.
* Documented pandoc 1.3's new definition list syntax in README.
(An oversight in the last release.)
* markdown2pdf.hs:
+ interpret ! in a log as an error line.
+ --toc now works properly.
* Changes in RunTests.hs:
+ Use the Diff library rather than a local copy of Diff.hs.
(This vastly increases performance.) This change means that 'cabal
test' presupposes that the Diff library is installed.
+ Removed tests/Diff.hs from cabal file.
+ Changed RunTests to use local environment. We need at least HOME, so
pandoc can find its data directory.
* Updated windows installer to install data files in the app directory.