Previously header ids were autogenerated by the writers.
Now they are generated (unless supplied explicitly) in the
markdown parser, if the `header_identifiers` extension is
selected.
In addition, the textile reader now supports id attributes on
headers.
* Added `embed_data_files` flag. (not yet used)
* Shared no longer exports `findDataFile`.
* `readDataFile` now returns a strict bytestring.
* Shared now exports `readDataFileUTF8` which returns a string like
the old `readDataFile`.
* Rewrote modules to use new data file functions and to avoid
using functions from Paths_pandoc directly.
* Remove executable and library flags.
* Expose `Text.Pandoc.XML` and `Text.Pandoc.Biblio`.
* Depend on pandoc library in executable, so we don't recompile
everything.
* Move pandoc.hs from src/ to .
* Previously there were three different templates involved in
epub production. There is now just one template, default.epub
or default.epub3.
* It can now be overridden using `--template`, just like other
templates.
* MakeManPage.hs has been transformed into
man/make-pandoc-man-pages.hs.
* There is now a cabal stanza for this, so the dependencies are
handled by cabal.
* Special treatment in Setup.hs ensures that this never gets installed;
it is built and used to create the man pages.
* Setup.hs cleaned up.
* Depend on text.
* Expose Text.Pandoc.UTF8.
* Text.Pandoc.UTF8 now exports toString, fromString,
toStringLazy, fromStringLazy.
* These are used instead of the old utf8-string functions.
- Removed writerLiterateHaskell from WriterOptions.
- Removed readerLiterateHaskell from ReaderOptions.
- Added Ext_literate_haskell to Extensions. Test for this
instead of the above.
- Removed failUnlessLHS from Shared.
Note: At this point, +lhs and .lhs extension no longer has any effect.
Need to fix.
To run tests, configure with --enable-tests, then 'cabal test'.
You can specify particular tests using --test-options='-t markdown'.
No output is shown unless tests fail. In the future, we can move
to the detailed-1.0 interface.
* All tables now require at least one body row.
* Renamed from 'extra' to 'pipe' tables.
* Moved functions from Parsing to Readers.Markdown.
* Cleaned up code; revised to parse in one pass rather than
parsing a raw string, splitting it, and parsing the components.
* Allow pipe tables without pipes on the ends (as PHP Markdown Extra
does).
Now you can use def (which is re-exported by Text.Pandoc) instead of
defaultParserState or defaultWriterOptions. For now, these
are still defined too, so existing code need not change.
Closes#546.
Use of the threaded runtime imposes a slight performance penalty,
and there is really no need for it, since pandoc doesn't run faster
on multiple cores.
Otherwise even those who don't build with the tests flag need
to have dependencies like test-framework.
This restores the old behavior; I wrongly assumed that by now cabal
was smart enough not to bring in build-depends for components with
Buildable = False.
* New module `Text.Pandoc.Docx`.
* New output format `docx`.
* Added reference.docx.
* New option `--reference-docx`.
The writer includes support for highlighted code blocks
and math (which is converted from TeX to OMML using
texmath's new OMML module).
This is the unaltered file from the dzslides repository.
Pandoc now reads it, looking for the core part, and includes
this in the new dzslides template via the 'dzslides-core'
variable.
When dzslides is updated, you can just put the new
template.html in your `~/.pandoc/dzslides` directory,
and things should work -- provided the core part can
be identified as everything from
<!-- {{{{ dzslides core
to the end of the file.
This should make it a bit easier to keep up to date.
* This is a breaking API change for `writeHtml`.
* It introduces a new dependency on blaze-html.
* Pandoc now depends on highlighting-kate >= 0.4, which
also uses blaze-html.
* The --ascii option has been removed, because of differences
in blaze-html's and xhtml's escaping.
* Pandoc will no longer transform leading newlines in code
blocks to `<br/>` tags.
Still TODO:
- documentation in README
- add default.asciidoc to templates/
- lists
- tables
- proper escaping
- footnotes with blank lines - print separately at end?
currently they are just ignored.
- fix header (date gives weird result on pandoc README)
In general I don't like adding generated content to the repository,
but I also want to make it possible to clone the repository and
'cabal install'. THe current system with Setup.hs calling
MakeManPage.hs is too fragile.
* Use non-minimized version of `slidy.css` with `--offline` option,
so users can more easily edit it.
* Fixed bug in slidy css that prevented proper centering of title.
Reason: new naming scheme for templates may require users
to rename default templates they have put in ~./pandoc/templates.
A template named FORMAT.template should be renamed default.FORMAT.
Instead of latex.template, we now have default.latex.
An appropriate extension is added automatically if the value of
`--template` has no extension. So, `pandoc --template=special -t latex`
looks for `special.latex`, while `pandoc --template=special -t man`
looks for `special.man`.
* Markdown syntax description from README now goes in pandoc_markdown.5.
* Refactored man page construction functions, putting more of
the work in MakeManPages.hs.
Additional related changes:
* URLs in Code in autolinks now use class "url".
* Require highlighting-kate 0.2.8.2, which omits the final <br/> tag,
essential for inline code.
The old TeX, HtmlInline and RawHtml elements have been removed
and replaced by generic RawInline and RawBlock elements.
All modules updated to use the new raw elements.
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.
The man pages are produced by a post-build hook, using
MakeManPage.hs. However, there seem to be problems running
this program on some systems; see
https://github.com/jgm/pandoc/issues/#issue/15.
This change means that the generated man pages will be included in
the tarball produced by 'cabal sdist', and hence in releases.
They will still be updated by the build process if the sources
change, but in most builds, the man page won't need to be regenerated.
+ You can now specify glob patterns after 'cabal test';
e.g. 'cabal test latex' will only run the latex tests.
+ Instead of detecting highlighting support in Setup.hs,
we now detect it in test-pandoc, by looking to see if
'languages' is null.
+ We now verify the lhs readers against the lhs-test.native,
normalizing with 'normalize'. This makes more sense than
verifying against HTML, which also brings in the HTML writer.
+ Added lhsn-test.nohl.{html,html+lhs}, so we can do the lhs
tests whether or not highlighting has been installed.
* The new reader is faster and more accurate.
* API changes for Text.Pandoc.Readers.HTML:
- removed rawHtmlBlock, anyHtmlBlockTag, anyHtmlInlineTag,
anyHtmlTag, anyHtmlEndTag, htmlEndTag, extractTagType,
htmlBlockElement, htmlComment
- added htmlTag, htmlInBalanced, isInlineTag, isBlockTag, isTextTag
* tagsoup is a new dependency.
* Text.Pandoc.Parsing: Generalized type on readWith.
* Benchmark.hs: Added length calculation to force full evaluation.
* Updated HTML reader tests.
* Updated markdown and textile readers to use the functions from
the HTML reader.
* Note: The markdown reader now correctly handles some cases it did not
before. For example:
<hr/>
is reproduced without adding a space.
<script>
a = '<b>';
</script>
is parsed correctly.
* Added Text.Pandoc.Pretty.
This is better suited for pandoc than the 'pretty' package.
One advantage is that we now get proper wrapping; Emph [Inline]
is no longer treated as a big unwrappable unit. Previously
we only got breaks for spaces at the "outer level." We can also
more easily avoid doubled blank lines. Performance is
significantly better as well.
* Removed Text.Pandoc.Blocks.
Text.Pandoc.Pretty allows you to define blocks and concatenate
them.
* Modified markdown, RST, org readers to use Text.Pandoc.Pretty
instead of Text.PrettyPrint.HughesPJ.
* Text.Pandoc.Shared: Added writerColumns to WriterOptions.
* Markdown, RST, Org writers now break text at writerColumns.
* Added --columns command-line option, which sets stColumns
and writerColumns.
* Table parsing: If the size of the header > stColumns,
use the header size as 100% for purposes of calculating
relative widths of columns.
We now get Text.Pandoc.Definition from the new pandoc-types package.
This will make it possible for other programs to supply output
in Pandoc format, without depending on the whole pandoc package.
+ New writer module Text.Pandoc.Writers.EPUB
+ Stylesheet in epub.css
+ --epub-stylesheet command-line option.
+ New utility module Text.Pandoc.UUID to generate
random UUIDs for EPUBs.
+ Transformed the old Text.Pandoc.ODT module into a proper
writer module, Text.Pandoc.Writers.ODT.
+ Instead of saveOpenDocumentAsODT, we now have writeODT, which
takes a Pandoc document and produces a bytestring.
saveOpenDocumentAsODT has been removed.
+ To extract the images and insert them into the ODT, we now use
processPandocM on the Pandoc document rather than a custom XML parser.
+ Handle the case where the image is remote (or not found) by
converting the Image element into an Emph with the label.
+ Plumbing in pandoc.hs changed slightly to accomodate this, and to
allow other writers that live in the IO monad.
+ GHC lacks a threaded runtime on some architectures.
Provide a 'threaded' flag that can be disabled for compiling
on these architectures.
+ Removed '-threaded' from pandoc's ghc-options. '-threaded'
is only needed for markdown2pdf, due to its use of readProcess.
Reason: starting with Cabal 1.8, installing pandoc with '-library
+executable' did not work, since the build-depends in the Library
stanza were ignored. The problem could be solved by repeating the
build-depends in the Executable stanza, but this seems non-ideal
(and might lead to errors later on). The '-library' option isn't
so useful anyway, since to compile pandoc in the first place, you
need a large number of Haskell libraries installed, and in this
case, why balk at another? It was chiefly intended for packagers,
but packagers will need to use a chroot environment anyway, and
they can then simply copy the executable and not the library.
Thanks to Jim Pryor for calling the problem to my attention
in connection with an arch linux package.