Commit graph

8516 commits

Author SHA1 Message Date
Jesse Rosenthal
5b3bfa28f4 Class: Warn instead or erroring if we can't fetch media
If deferred media can't be fetched, we catch the error and warn
instead. We add an internal function for fetching which returns a Maybe
value, and then run catMaybes to only keep the Just's.
2017-01-25 17:07:42 +01:00
Jesse Rosenthal
613588a0dc Class: Refactor fetchItem.
Move the downloading/reading-in logic out of fetchItem, so we can use it
to fill the MediaBag. Now when other modules use `fetchItem` it will
fill the MediaBag as expected.
2017-01-25 17:07:42 +01:00
Jesse Rosenthal
4b953720c8 Class: Add insertDeferredMedia function. 2017-01-25 17:07:42 +01:00
Jesse Rosenthal
55dbc00d55 Integrate DeferredMediaBag into CommonState
The DeferredMediaBag is now the object that is held in state. It should
not be visible to users, who will still deal with MediaBag through
exported getters and setters.

We now have a function `fetchDeferredMedia` which returns () but
downloads/reads in all of the deferred media.

Note that getMediaBag first fetches all deferred media.
2017-01-25 17:07:42 +01:00
Jesse Rosenthal
5814096d79 Introduce DeferredMediaBag.
This is a lazy MediaBag, that will only be evaluated (downloaded/read
in) upon demand.

Note that we use fetchItem in getDefferedMedia at the moment to read
in/download. This means that we don't need to distinguish between URIs
and FilePaths. But there is an inefficiency here: `fetchItem` will pull
an item out of the mediaBag if it's already there, and then we'll
reinsert it. We could separate out `fetchItem` into the function that
checks the MediaBag and the underlying downloader/read-inner.
2017-01-25 17:07:42 +01:00
John MacFarlane
adcd4c5b7b Use latest pandoc-citeproc for windows build. 2017-01-25 17:07:42 +01:00
John MacFarlane
f447e724cc Expose Text.Pandoc.MIME, unexpose Text.Pandoc.CSS 2017-01-25 17:07:42 +01:00
John MacFarlane
994d431172 Class: have pure instance of openURL throw an error, for now.
Later we may want to include a map of URLs and mime type, bytestring
pairs in pure state to serve as a fake internet.
2017-01-25 17:07:42 +01:00
John MacFarlane
6aff97e4e1 Text.Pandoc.Shared: Removed fetchItem, fetchItem'.
Made changes where these are used, so that the version
of fetchItem from PandocMonad can be used instead.
2017-01-25 17:07:42 +01:00
John MacFarlane
4cb124d147 Add openURL and readFileStrict to PandocMonad.
Removed fetchItem and fetchItem'.
Provide fetchItem in PandocMonad (it uses openURL and readFileStrict).

TODO:

- PandocPure instance for openURL.
- Fix places where fetchItem is used so that we trap the
  exception instead of checking for a Left value.  (At least
  in the places where we want a warning rather than a failure.)
2017-01-25 17:07:41 +01:00
John MacFarlane
be140ab496 Moved extract-changes.hs and github-upload.sh to tools/. 2017-01-25 17:07:41 +01:00
John MacFarlane
00240ca7ed Removed hush from Text.Pandoc.Shared.
Not used anywhere.
2017-01-25 17:07:41 +01:00
John MacFarlane
8165014df6 Removed --normalize option and normalization functions from Shared.
* Removed normalize, normalizeInlines, normalizeBlocks
  from Text.Pandoc.Shared.  These shouldn't now be necessary,
  since normalization is handled automatically by the Builder
  monoid instance.

* Remove `--normalize` command-line option.

* Don't use normalize in tests.

* A few revisions to readers so they work well without normalize.
2017-01-25 17:07:41 +01:00
John MacFarlane
08110c3714 Class: Removed getDefaultReferenceDocx/ODT from PandocMonad.
We don't need these, since the default docx and odt can be
retrieved using `readDataFile datadir "reference.docx"` (or odt).
2017-01-25 17:07:41 +01:00
John MacFarlane
143d1a2113 Removed commented-out vestigaes of fail in Class. 2017-01-25 17:07:41 +01:00
John MacFarlane
35699ee533 Fixed up weigh-pandoc and benchmark-pandoc so they build. 2017-01-25 17:07:41 +01:00
John MacFarlane
b5d1567022 Class: removed 'fail' from PandocMonad.
Do we need this?  I don't see why.

There's a name clash which would better be avoided.
2017-01-25 17:07:41 +01:00
John MacFarlane
73f3736602 CONTRIBUTING: instructions for building weigh-pandoc. 2017-01-25 17:07:41 +01:00
John MacFarlane
a66c1bf88e Generic instance for PandocError. 2017-01-25 17:07:41 +01:00
John MacFarlane
a964b14475 Text.Pandoc: limit exports from Text.Pandoc.Class. 2017-01-25 17:07:41 +01:00
John MacFarlane
16b1b117df Updated RELEASE-CHECKLIST and markdownified. 2017-01-25 17:07:41 +01:00
John MacFarlane
af2742a9cc Removed PROFILING, added profiling info to CONTRIBUTING.md. 2017-01-25 17:07:41 +01:00
John MacFarlane
ffb0b7c6ce Removed Interact.hs, not needed any more with modern tools. 2017-01-25 17:07:41 +01:00
John MacFarlane
e7a22c8544 Removed ancient HCAR-Pandoc.tex. 2017-01-25 17:07:41 +01:00
John MacFarlane
3ede38d15d Use dev pandoc-citeproc for appveyor build. 2017-01-25 17:07:41 +01:00
John MacFarlane
2e7b0c7eda Added ReaderOptions parameter to readNative.
This makes it similar to the other readers -- even
though ReaderOptions is essentially ignored, the uniformity
is nice.
2017-01-25 17:07:41 +01:00
John MacFarlane
6643e401ee Version to 2.0. 2017-01-25 17:07:41 +01:00
John MacFarlane
fa00df2b8e pandoc.hs: moved main loop to beginning of file. 2017-01-25 17:07:41 +01:00
John MacFarlane
53e4b2fedc Refactored pandoc.hs so that all the runIO' part comes at the end. 2017-01-25 17:07:41 +01:00
John MacFarlane
7e60fd224e Travis: allow ghc 7.8.4 to fail. For now anyway. 2017-01-25 17:07:41 +01:00
John MacFarlane
dcccf65f33 MediaBag: put extractMediaBag into MonadIO. 2017-01-25 17:07:41 +01:00
John MacFarlane
cf7d7f533a SelfContained: put makeSelfContained in MonadIO. 2017-01-25 17:07:41 +01:00
John MacFarlane
753c14cb63 PDF: put makePDF in MonadIO. 2017-01-25 17:07:41 +01:00
John MacFarlane
4b4670ef6d pandoc.hs - moved some utility functions out of main loop. 2017-01-25 17:07:41 +01:00
John MacFarlane
3549e171bb More refactoring of pandoc.hs for clarity. 2017-01-25 17:07:41 +01:00
John MacFarlane
dc4f659401 Put filter running code into MonadIO 2017-01-25 17:07:41 +01:00
John MacFarlane
2b24c6ff3a Shared: put err into MonadIO. 2017-01-25 17:07:41 +01:00
John MacFarlane
61335074b2 Fixed a misleading comment. 2017-01-25 17:07:41 +01:00
John MacFarlane
49502b9a02 Added a type signature 2017-01-25 17:07:41 +01:00
John MacFarlane
1bdf23c697 More refactoring of pandoc.hs for clarity. 2017-01-25 17:07:41 +01:00
John MacFarlane
8beba65977 Slight code rearrangement in preparation for...
...passing mediabag in the PandocIO monad.
2017-01-25 17:07:41 +01:00
John MacFarlane
f1ef0e3645 Finished previous commit; removed export of toJsonFilter. 2017-01-25 17:07:41 +01:00
John MacFarlane
f91a6b541f Removed deprecated toJsonFilter.
Use toJSONFilter from Text.Pandoc.JSON.
2017-01-25 17:07:41 +01:00
John MacFarlane
87170e2af4 Removed deprecated --no-wrap option. 2017-01-25 17:07:41 +01:00
John MacFarlane
767638a54e Removed deprecated --chapters option. 2017-01-25 17:07:41 +01:00
John MacFarlane
ce1664cf2b Simplified reference-docx/reference-odt to reference-doc.
* Text.Pandoc.Options.WriterOptions: removed writerReferenceDocx
  and writerReferenceODT, replaced them with writerReferenceDoc.
  This can hold either an ODT or a Docx. In this way, writerReferenceDoc
  is like writerTemplate, which can hold templates of different
  formats. [API change]

* Removed `--reference-docx` and `--reference-odt` options.

* Added `--reference-doc` option.
2017-01-25 17:07:41 +01:00
John MacFarlane
9570f59066 Process.pipeProcess: stream stderr rather than capturing.
Signature of pipeProcess has changed: the return value is
now IO (ExitCode, ByteString) -- with only stdout. Stderr
is just inherited from the parent.

This means that stderr from filters will now be streamed
as the filters are run.

Closes #2729.
2017-01-25 17:07:41 +01:00
John MacFarlane
da2055d709 RST reader: rebase-related fixes to warnings. 2017-01-25 17:07:41 +01:00
John MacFarlane
f328cfe6a7 Removed unneeded pragmas. 2017-01-25 17:07:41 +01:00
John MacFarlane
bc61c6a632 Remove now-unnecessary lifts in Markdown writer.
Other writers still TBD.
2017-01-25 17:07:41 +01:00