Commit graph

322 commits

Author SHA1 Message Date
John MacFarlane
9152fa1a95 Use query instead of queryWith. 2013-08-10 18:13:38 -07:00
John MacFarlane
7024664dda Fixed compilation with http-conduit flag False. 2013-07-30 08:38:13 -07:00
John MacFarlane
7c980f39bf Improved fetching of external resources.
* In Shared, openURL and fetchItem now return an Either, for
  better error handling. (API change.)
* Better error message when fetching a URL fails with
  `--self-contained`.
* EPUB writer: If resource not found, skip it, as in Docx writer.
* Closes #916.
2013-07-18 20:58:14 -07:00
John MacFarlane
ed714b1b52 cabal: Added http-conduit flag, which allows fetching https resources.
It also brings in a large number of dependencies (http-conduit and its
dependencies), which is why for now it is an optional flag.

Closes #820.
2013-07-04 23:13:37 -07:00
John MacFarlane
956425709d Created Text.Pandoc.Writers.Shared, improved metaToJSON.
* Text.Pandoc.Writers.Shared contains shared functions used
  only in writers.
* metaToJSON now takes a WriterOptions parameter, and will
  return an empty object if standalone is not specified.
2013-07-01 20:47:26 -07:00
John MacFarlane
55c8003e22 Shared: Export getField. 2013-07-01 16:28:22 -07:00
John MacFarlane
a1f010de78 Metadata changes: Variables now completely shadow metadata.
Previously if you set a value both in metadata and with a variable,
they'd be combined into a list.  Now the variable replaces the
value in document metadata.  If many variables with the same
name are set, a list is created.

Shared:  metaToJSON now has an argument for a variable list.
2013-06-29 22:14:01 -07:00
John MacFarlane
9ab60a4d15 Shared: Added defField.
`defField` is like `setField`, but does nothing if the
field already has a value.
2013-06-27 21:13:18 -07:00
John MacFarlane
16d6005ed9 Fixed merge bugs in Shared. 2013-06-25 18:15:22 -07:00
John MacFarlane
f34232c934 Removed 'Functor' constraint. 2013-06-25 17:41:15 -07:00
John MacFarlane
f869f7e08d Use new flexible metadata type.
* Depend on pandoc 1.12.
* Added yaml dependency.
* `Text.Pandoc.XML`: Removed `stripTags`.  (API change.)
* `Text.Pandoc.Shared`:  Added `metaToJSON`.
  This will be used in writers to create a JSON object for use
  in the templates from the pandoc metadata.
* Revised readers and writers to use the new Meta type.
* `Text.Pandoc.Options`: Added `Ext_yaml_title_block`.
* Markdown reader:  Added support for YAML metadata block.
  Note that it must come at the beginning of the document.
* `Text.Pandoc.Parsing.ParserState`:  Replace `stateTitle`,
  `stateAuthors`, `stateDate` with `stateMeta`.
* RST reader:  Improved metadata.
  Treat initial field list as metadata when standalone specified.
  Previously ALL fields "title", "author", "date" in field lists
  were treated as metadata, even if not at the beginning.
  Use `subtitle` metadata field for subtitle.
* `Text.Pandoc.Templates`:  Export `renderTemplate'` that takes a string
  instead of a compiled template..
* OPML template:  Use 'for' loop for authors.
* Org template: '#+TITLE:' is inserted before the title.
  Previously the writer did this.
2013-06-24 20:29:41 -07:00
John MacFarlane
0a6e9f048a Shared.openURL: Properly handle data: URIs. 2013-05-28 12:48:17 -07:00
John MacFarlane
f63129040b Less verbose output from --self-contained.
Now one gets "Fetching [URL]..." for each URL fetched, but not
the full header.
2013-05-04 21:53:06 -07:00
John MacFarlane
effc6a9ed4 Shared.openURL: Print diagnostic output to stderr, not stdout. 2013-05-01 10:55:06 -07:00
John MacFarlane
1991edf9a5 Shared.openURL: URL-escape pipe characters.
Even though these are legal, Network.URI doesn't regard them
as legal in URLs.  So we escape them first.

Closes #535.
2013-04-28 22:57:17 -07:00
John MacFarlane
89d525e417 Shared: Fixed readDefaultDataFile so it works on Windows. 2013-04-20 13:07:50 -07:00
John MacFarlane
3c1a8d1924 Revert "Improved previous patch so it really solves the Windows issue."
This reverts commit e80116c813.
2013-04-20 10:09:17 -07:00
John MacFarlane
e80116c813 Improved previous patch so it really solves the Windows issue. 2013-04-19 23:24:06 -07:00
John MacFarlane
6bd686a4f6 Shared: readDefaultDataFile: normalize the paths.
This fixes bugs in `--self-contained` on pandoc compiled with
`embed_data_files`.  The bugs affect (a) paths containing `..`, (b)
Windows, where `\` is path separator.

Closes #833.
2013-04-19 23:03:59 -07:00
John MacFarlane
727645bc1f Shared: openURL now follows redirects.
Closes #701.
2013-03-26 08:32:02 -07:00
John MacFarlane
cdee226586 hierarchicalize: Do not number section with class "unnumbered".
Unnumbered sections get [] for their section number.
So far only the HTML writer has been adjusted to be sensitive
to this.

If we keep this change, all the writers will need to be changed
either (a) to directly check for the "unnumbered" class, if they
do section numbering themselves, or (b) to check for a null section
number, if they use hierarchicalize.
2013-02-13 08:49:48 -08:00
John MacFarlane
5330e63421 Shared: Changed type of Element.
Sec now includes a field for Attr rather than just String
(the identifier).

Note, this is an API change.
2013-02-12 20:13:23 -08:00
John MacFarlane
9c299d282f Added Text.Pandoc.Data (non-exported) if embed_data_files selected.
This module just exports the association list of embedded data files,
which is used by Shared.
2013-01-23 19:26:39 -08:00
John MacFarlane
449ddeb53b Refactoring:
* Shared now exports fetchItem (instead of getItem) and openURL
* fetchItem has different parameters than getItem and includes
  some logic formerly in the ODT and Docx writers
* getItem still used in SelfContained
2013-01-11 16:19:06 -08:00
John MacFarlane
77d9ead1b2 Move getItem from SelfContained to Share; export getItem. 2013-01-11 11:30:31 -08:00
John MacFarlane
d599c4cdab Added Attr field to Header.
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.
2013-01-09 09:30:05 -08:00
John MacFarlane
7909982f9a Shared: export isTightList. 2013-01-07 20:12:05 -08:00
John MacFarlane
5e5859f126 Revert "Workaround for problem with file-embed."
This reverts commit 84ed0f055f.
2012-12-30 15:50:37 -08:00
John MacFarlane
84ed0f055f Workaround for problem with file-embed.
file-embed uses forward slashes as path separators, even
on Windows.  So we just convert backslashes to forward
before doing a lookup.
2012-12-29 20:44:09 -08:00
John MacFarlane
c2fe3aae64 Made embed_data_files flag work. 2012-12-29 18:45:20 -08:00
John MacFarlane
1864bb0994 Data files changes.
* 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.
2012-12-29 17:54:07 -08:00
John MacFarlane
93e92a4716 Renamed removedLeadingTrailingSpace to trim.
Also removeLeadingSpace to triml,
removeTrailingSpace to trimr.
2012-09-29 17:09:34 -04:00
John MacFarlane
5c06322ab2 Shared: Export compactify', formerly in Markdown reader. 2012-09-27 17:52:38 -07:00
John MacFarlane
ff84881e8c Shared: Count \r as space in removeLeading/TrailingSpace. 2012-09-26 09:06:34 -07:00
John MacFarlane
12045d84b6 Revert "More intelligent handling of text encodings."
This reverts commit 7272735b3d.
2012-09-23 22:53:34 -07:00
John MacFarlane
7272735b3d More intelligent handling of text encodings.
Previously, UTF-8 was enforced for both input and output.

The new system:

* For input, UTF-8 is tried first; if an error is raised, the
  locale encoding is tried.
* For output, the locale encoding is always used.
2012-09-23 22:12:21 -07:00
John MacFarlane
a6f2b96084 Moved renderTags' from HTML reader & SelfContained to Shared.
Improved removal of markdown="1" attribute in Markdow reader.
2012-08-15 09:42:16 -07:00
John MacFarlane
0cb7362f62 Removed --strict, added extensions to writer/reader names.
* The `--strict` option has been removed.
* Instead of using `--strict`, one can now use `strict` instead of
  `markdown` as an input or output format name.
* The `--enable` and `--disable` optinos have been removed.
* It is now possible to enable or disable specific extensions
  by appending them (with '+' or '-') to the writer or reader
  name.  For example `pandoc -f markdown-footnotes+hard_line_breaks`.
* The lhs extensions are now implemented this way, too; you can
  use either `+lhs` or `+literate_haskell`.
2012-08-09 20:24:05 -07:00
John MacFarlane
10cdd59fa8 Added safeRead to Text.Pandoc.Shared. 2012-08-09 07:52:39 -07:00
John MacFarlane
00dc1e715e Moved WriterOptions and associated types Shared -> Options. 2012-07-26 22:59:56 -07:00
John MacFarlane
6d7f0a1b81 Fixed whitespace errors. 2012-07-26 22:32:53 -07:00
John MacFarlane
02ef26ae91 Slightly more efficient normalizeSpaces. 2012-07-24 22:12:18 -07:00
John MacFarlane
cd19d4596b Added fields to WriterOptions.
writerEpubStylesheet, writerEpubFonts, writerReferenceODT,
writerReferenceDocx.  These can now be removed as extra
parameters to the writers.
2012-07-24 09:49:57 -07:00
John MacFarlane
2351f7a112 Provide Data.Default instances for ParserState and WriterOptions.
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.
2012-07-19 12:38:54 -07:00
Jonas Smedegaard
61f8dd4da8 Add support for Slideous output. 2012-05-24 10:31:18 +02:00
John MacFarlane
5f889b9396 Added writerTeXLigatures to WriterOptions, --no-tex-ligatures option.
This is useful for those who want to use advanced OpenType features
with xelatex/lualatex.
2012-05-11 23:00:46 -07:00
John MacFarlane
75485c2f11 Complete rewrite of LaTeX reader.
* The new reader is more robust, accurate, and extensible.
  It is still quite incomplete, but it should be easier
  now to add features.

* Text.Pandoc.Parsing: Added withRaw combinator.

* Markdown reader: do escapedChar before raw latex inline.
  Otherwise we capture commands like \{.

* Fixed latex citation tests for new citeproc.

* Handle \include{} commands in latex.
  This is done in pandoc.hs, not the (pure) latex reader.
  But the reader exports the needed function, handleIncludes.

* Moved err and warn from pandoc.hs to Shared.

* Fixed tests - raw tex should sometimes have trailing space.

* Updated lhs-test for highlighting-kate changes.
2012-02-04 09:56:43 -08:00
John MacFarlane
3a0b3df007 Put date in YYYY-MM-DD format if possible for HTML, docx metadata.
Added normalizeDate to Text.Pandoc.Shared.
2012-01-28 15:54:34 -08:00
John MacFarlane
ad33a22a22 Shared: Added splitStringWithIndices.
This is like splitWithIndices, but it is sensitive to distinctions
between wide, combining, and regular characters.
2012-01-27 00:37:46 -08:00
John MacFarlane
5fc6669be6 Added --atx-headers option. 2012-01-26 23:55:37 -08:00