Commit graph

135 commits

Author SHA1 Message Date
John MacFarlane
1ee6e0e087 Use new doctemplates, doclayout.
+ Remove Text.Pandoc.Pretty; use doclayout instead. [API change]
+ Text.Pandoc.Writers.Shared: remove metaToJSON, metaToJSON'
  [API change].
+ Text.Pandoc.Writers.Shared: modify `addVariablesToContext`,
  `defField`, `setField`, `getField`, `resetField` to work with
  Context rather than JSON values. [API change]
+ Text.Pandoc.Writers.Shared: export new function `endsWithPlain` [API
  change].
+ Use new templates and doclayout in writers.
+ Use Doc-based templates in all writers.
+ Adjust three tests for minor template rendering differences.
+ Added indentation to body in docbook4, docbook5 templates.

The main impact of this change is better reflowing of content
interpolated into templates.  Previously, interpolated variables
were rendered independently and intepolated as strings, which could lead
to overly long lines.  Now the templates interpolated as Doc values
which may include breaking spaces, and reflowing occurs
after template interpolation rather than before.
2019-08-25 14:24:31 -07:00
John MacFarlane
b35fae6511 Use doctemplates 0.3, change type of writerTemplate.
* Require recent doctemplates.  It is more flexible and
  supports partials.
* Changed type of writerTemplate to Maybe Template instead
  of Maybe String.
* Remove code from the LaTeX, Docbook, and JATS writers that looked in
  the template for strings to determine whether it is a book or an
  article, or whether csquotes is used. This was always kludgy and
  unreliable.  To use csquotes for LaTeX, set `csquotes` in your
  variables or metadata. It is no longer sufficient to put
  `\usepackage{csquotes}` in your template or header includes.
  To specify a book style, use the `documentclass` variable or
  `--top-level-division`.
* Change template code to use new API for doctemplates.
2019-07-28 19:25:45 -07:00
Mauro Bieg
214da7217b Fix handling of file: URL scheme in downloadOrRead (#5522)
Move up the pattern match to be reachable, closes #5517.

Previously `file:/` URLs were handled wrongly and pandoc attempted
to make HTTP requests, which failed.
2019-05-28 11:51:21 -04:00
Jesse Rosenthal
ab5c701343 PowerPoint writer: expand builtin reference doc to model all layouts
The previous built-in reference doc had only title and content
layouts. Add in a section-header slide and a two-content slide, so
users can more easily modify it to build their own templates.

Golden files needed to be regenerated. Checked on MS PowerPoint 2013.
2019-04-05 08:50:39 -04:00
John MacFarlane
3ecc8d154b Drop support for ghc < 8. 2019-03-27 11:38:24 -07:00
John MacFarlane
97acf152e0 fetchItem: don't treat UNC paths as protocol-relative URLs.
These are paths beginning `//?/UNC/...`.  Closes #5127.
2019-03-22 11:22:21 -07:00
John MacFarlane
f3080c0c22 Remove license boilerplate.
The haddock module header contains essentially the
same information, so the boilerplate is redundant and
just one more thing to get out of sync.
2019-03-01 10:27:06 -08:00
Alexander Krotov
bd59f8b708 Remove unnecessary hiding in Class.hs 2018-11-01 19:09:59 +03:00
John MacFarlane
30033f417f Docx writer: added framework for custom properties.
So far, we don't actually write any custom properties,
but we have the infrastructure to add this.

See #3034.
2018-10-09 10:38:50 -07:00
Alexander Krotov
f6dfb632ff Spellcheck comments 2018-07-02 18:30:37 +03:00
John MacFarlane
06bcb7c872 Remove network-uri flag and use 'Network.Socket'.
This removes a compiler warning.
There is no need for the old network-uri flag, since
network 2.6 was released in 2014.
2018-06-28 11:51:52 +02:00
John MacFarlane
780bf64d1d Use uriPathToPath with file: URIs.
Closes #4613.

Needs testing on Windows.
2018-05-08 09:56:42 -07:00
Francesco Occhipinti
59f0c1d83b catch IO errors when writing media files, closes #4559 (#4619)
If we do not catch these errors, any malformed entry in a media bag
could cause the loss of a whole document output. An example of
malformed entry is an entry with an empty file path.
2018-05-04 10:31:02 -07:00
John MacFarlane
b15f4f468d Text.Pandoc.Class.writeMedia: unescape URI-escaping in file path.
This avoids writing things like `file%20one.png` to the file system.
2018-04-19 11:39:35 -07:00
John MacFarlane
937bec95a9 Removed old-locale flag and Text.Pandoc.Compat.Time.
This is no longer necessary since we no longer support ghc 7.8.
2018-03-18 11:24:29 -07:00
John MacFarlane
7e389cb3db Use NoImplicitPrelude and explicitly import Prelude.
This seems to be necessary if we are to use our custom Prelude
with ghci.

Closes #4464.
2018-03-18 10:46:28 -07:00
John MacFarlane
f0b6e0ee49 Monoid/Semiground cleanup relying on custom Prelude. 2018-03-16 12:17:58 -07:00
John MacFarlane
0b5712e69b Class: Semigroup instance for FileTree with base >= 4.9. 2018-03-16 08:23:34 -07:00
Jesse Rosenthal
6c6ac9f22e Powerpoint writer: Move notes slides into data tree. 2018-02-18 16:31:32 -05:00
John MacFarlane
b8ffd834cf hlint code improvements. 2018-01-19 21:25:24 -08:00
John MacFarlane
da64e5baa4 Class: make FileTree opaque.
This forces uses to interact with it using
`insertInFileTree` and `getFileInfo`, which normalize
file names.
2017-12-28 16:39:52 -08:00
John MacFarlane
3494b6efd3 Powerpoint writer tests: use IO.
Otherwise we can't find the data files when compiled
with -embed_data_files.
2017-12-28 12:06:38 -08:00
John MacFarlane
d5770b7496 Moved makeCanoncial definition out of ifdef!
Also added slide2 to the default pptx, and reordered
the data files in pandoc.cabal.
2017-12-28 11:03:53 -08:00
John MacFarlane
60ace79b03 Class: use makeCanonical for normalization in FileTree and data files. 2017-12-28 10:47:09 -08:00
John MacFarlane
ddd6a89247 Text.Pandoc.Class: add insertInFileTree (API change).
This gives a pure way to insert an ersatz file into a FileTree.

In addition, we normalize paths both on insertion and on
lookup, so that "foo" and "./foo" will be judged equivalent.
2017-12-28 10:23:09 -08:00
John MacFarlane
935b16b38a Removed whitespace at ends of line. 2017-12-13 20:48:24 -08:00
Jesse Rosenthal
8cd0ebe303 Add necessary powerpoint functions to Class. 2017-12-11 07:00:17 -05:00
John MacFarlane
6a1476e7e2 Export all of Text.Pandoc.Class from Text.Pandoc. 2017-10-29 15:00:49 -07:00
John MacFarlane
52ee19a825 Source code reformatting. 2017-10-29 14:29:32 -07:00
John MacFarlane
cbcb9b36c0 hlint suggestions. 2017-10-27 23:13:55 -07:00
John MacFarlane
e77d08e439 hlint suggestions. 2017-10-27 21:07:47 -07:00
John MacFarlane
33eee0ceb8 Comment reformat. 2017-10-26 11:35:27 -07:00
John MacFarlane
f82bcc2bf3 Added some haddock docs for Text.Pandoc.Class functions. 2017-10-24 22:12:05 -07:00
John MacFarlane
ecb5475a2a Back to using [WARNING] and [INFO] to mark messages. 2017-10-23 23:01:37 -07:00
John MacFarlane
1a82ecbb68 More pleasing presentation of warnings and info messages.
!! warning
-- info
2017-10-23 15:00:11 -07:00
John MacFarlane
2f66d57616 Remove openURL from Shared (API change).
Now all the guts of openURL have been put into openURL from
Class.  openURL is now sensitive to stRequestHeaders in CommonState
and will add these custom headers when making a request.
It no longer looks at the USER_AGENT environment variable,
since you can now set the `User-Agent` header directly.
2017-10-15 22:11:38 -07:00
John MacFarlane
a1f7a4263f Class: add stRequestHeaders to CommonState, and setRequestHeader. 2017-10-15 22:09:28 -07:00
John MacFarlane
9ec458f39f Text.Pandoc.Class - add getVerbosity. 2017-09-30 17:15:55 -05:00
John MacFarlane
f3a80034ff Removed writerSourceURL, add source URL to common state.
Removed `writerSourceURL` from `WriterOptions` (API change).
Added `stSourceURL` to `CommonState`.
It is set automatically by `setInputFiles`.

Text.Pandoc.Class now exports `setInputFiles`, `setOutputFile`.

The type of `getInputFiles` has changed; it now returns `[FilePath]`
instead of `Maybe [FilePath]`.

Functions in Class that formerly took the source URL as a parameter
now have one fewer parameter (`fetchItem`, `downloadOrRead`,
`setMediaResource`, `fillMediaBag`).

Removed `WriterOptions` parameter from `makeSelfContained` in
`SelfContained`.
2017-09-30 16:11:20 -05:00
Albert Krewinkel
2f47e04206
Text.Pandoc.Lua: add mediabag submodule 2017-09-30 09:57:03 +02:00
John MacFarlane
e334d7dc38 Protect OVERLAPS pragma with CPP. 2017-08-20 11:13:42 -07:00
John MacFarlane
ba3088f0b3 Use OverlappingInstances instead of OVERLAPS for ghc 7.8.4. 2017-08-20 10:43:31 -07:00
John MacFarlane
40d1246629 Removed redundant import. 2017-08-20 09:37:18 -07:00
John MacFarlane
8b8c94552f Simplify instances in Class by parameterizing on MonadTrans. 2017-08-19 16:39:22 -07:00
John MacFarlane
444f8e9569 Improved error report on loading translation file. 2017-08-12 12:25:33 -07:00
John MacFarlane
622c3f2fa6 Change to yaml for translation files. 2017-08-12 12:17:38 -07:00
John MacFarlane
95f7dc6573 Fixed import. 2017-08-11 23:57:35 -07:00
John MacFarlane
1002178752 More redundant imports. 2017-08-11 23:24:55 -07:00
John MacFarlane
b3bb9a4384 Avoid some warnings when compiled wo/ embed_data_files flag. 2017-08-11 23:11:37 -07:00
John MacFarlane
6c5952e746 Add getFileName to PandocMonad.
We need this for getDefaultDataFile.
2017-08-11 23:09:51 -07:00