Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
This fixes a regression that was introduced when `--extract-media`
was generalized to work with any input format. We were getting
two versions of each image extracted from a docx, one with a hash,
one with the original filename, though only the hash one was used.
This patch restores the original behavior (using the original
filename).
Pointed out in comments on #3674. Thanks to @laperouse.
|
|
|
|
Also generalized type of fillMedia to any instance of PandocMonad.
|
|
Closes #3646.
|
|
Use this instead of PandocIOError when a resource is not
found in path.
This improves the error message in this case, see #3629.
|
|
|
|
This makes them easier to read.
|
|
PDF writer: Use 'report' instead of 'warn', make it sensitive
to verbosity settings.
|
|
To be used in implementing `\graphicspath` in LaTeX, and possibly
in things like PDF production via context.
Use resource path in fetchItem.
Issue an info message if we get a resource from somewhere other
than ".".
Added UsingResourceFrom to log message.
|
|
|
|
|
|
Verbosity level only affects which are printed to stdout.
(Exception: DEBUG messages are only printed, never saved to
state.)
|
|
|
|
This now contains the Verbosity definition previously
in Options, as well as a new LogMessage datatype that
will eventually be used instead of raw strings for
warnings.
This will enable us, among other things, to provide
machine-readable warnings if desired.
See #3392.
|
|
See #3392.
|
|
This was not actually being used. Since it adds considerable
complexity, it's best not to include it unless we are
actually going to use it.
The original thought was that we could do all loading in the
readers, always deferred and thus costless. This was supposed
to eliminate the need to traverse trees loading resources in
the docx, epub, odt writers and in PDF and SelfContained.
(It would also have the side effect that --extract-media could
be used with all input formats. This wasn't an intended side
effect, and it could be debated whether it's desirable, since
--extract-media was originally designed to extract the media
contained in a docx or odt or epub container.)
However, we never actually took the step of moving all of this
work to the readers, for a couple of reasons. The main reason
is that we'd still need to fetch resources in the docx,
epub, odt, pdf and self-contained writers, since the Pandoc AST might
have been built programatically and hence not generated by a reader.
So it's not clear that doing lazy loading in the readers would have
any real advantage.
I'm still not completely sure about this --- if we change our
minds it would be easy to undo this commit.
@jkr comments welcome.
|
|
* Export readFileFromDirs from Class.
* Export insertIncludedFile from Parsing.
Simplified code in LaTeX/RST readers.
|
|
This can be used in several different modules, not just
LaTeX reader.
|
|
|
|
|
|
Class:
* Removed getWarnings, withWarningsToStderr
* Added report
* Added logOutput to PandocMonad
* Make logOutput streaming in PandocIO monad
* Properly reverse getLog output
Readers:
* Replaced use of trace with report DEBUG.
TWiki Reader: Put everything inside PandocMonad m.
API changes.
|
|
* Export getLog, setVerbosity
* Add report to PandocMonad methods.
* Redefine warning and getWarnings in terms of getLog and report.
* Remove stWarnings from CommonState, add stLog and stVerbosity.
|
|
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.
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
Later we may want to include a map of URLs and mime type, bytestring
pairs in pure state to serve as a fake internet.
|
|
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.)
|
|
We don't need these, since the default docx and odt can be
retrieved using `readDataFile datadir "reference.docx"` (or odt).
|
|
|
|
Do we need this? I don't see why.
There's a name clash which would better be avoided.
|
|
|
|
|
|
- Added getCommonState, putCommonState, getsCommonState, modifyCommonState
to PandocMonad interface.
- Removed MonadState CommonState instances.
|
|
|
|
This will avoid the need for lift.
|
|
After all, we have warning if you don't want the source pos info.
|
|
There are two states in PandocPure, but it is only easy to deal with
CommonState. In the past, to do state monad operations on
PureState (the state specific to PandocPure) you had to add (lift
. lift) to the monadic operation and then rewrap in the newtype. This
adds four functions ({get,gets,put,modify}PureState) corresponding to
normal state monad operations. This allows the user to modify
PureState in PandocPure without worrying about where it sits in the
monad stack or rewrapping the newtype.
|
|
This was left over from when they were part of an environment.
|
|
It now lives in IO and gives a proper message + exit
instead of calling 'error'.
We shouldn't be making it easier for people to raise error on
pure code. And this is better for the main application
in IO.
|
|
There's already a function addWarning in Parsing!
Maybe we can dispense with that now, but I still like
'warning' better as a name.
|
|
* Renaming Text.Pandoc.Class.warn to addWarning avoids conflict
with Text.Pandoc.Shared.warn.
* Removed writeRTFWithEmbeddedImages from Text.Pandoc.Writers.RTF.
This is no longer needed; we automatically handle embedded images
using the PandocM functions. [API change]
|
|
And use this in pandoc.hs so that messages actually get printed.
|
|
|
|
Make it all state. This will make it easier to set things.
|
|
We don't have a good way to set things that aren't in the common
state. That will be the next order of business.
|