Commit graph

7787 commits

Author SHA1 Message Date
John MacFarlane
8d179f7508 Removed unneeded imports. 2017-01-25 17:07:42 +01:00
John MacFarlane
00c6c371f2 Removed unused readerFileScope.
API change.
2017-01-25 17:07:42 +01:00
John MacFarlane
a3c3694024 Removed writerMediaBag from WriterOpts.
...since this is now handled through PandocMonad.

Added an explicit MediaBag parameter to makePDF and makeSelfContained.
2017-01-25 17:07:42 +01:00
John MacFarlane
0bcc81c0b1 Removed writerTeXLigatures.
Make `smart` extension work in LaTeX/ConTeXt writers instead.

Instead of `-t latex --no-tex-ligatures`, do `-t latex-smart`.
2017-01-25 17:07:42 +01:00
John MacFarlane
4f6e6247f9 Made smart extension default for pandoc markdown.
Updated tests.
2017-01-25 17:07:42 +01:00
John MacFarlane
a58369a7e6 Options: changed default reader/writerExtensions to emptyExtensions.
Previously they were pandocExtensions.
This didn't make sense for many formats.
2017-01-25 17:07:42 +01:00
John MacFarlane
412ed3f132 Make the smart extension affect the Markdown writer.
Thus, to "unsmartify" something that has been parsed as
smart by pandoc, you can use `-t markdown+smart`, and
straight quotes will be produced instead of curly quotes,
etc.

Example:

    % pandoc -f latex -t markdown+smart
    ``hi''---ok
    ^D
    "hi"---ok
2017-01-25 17:07:42 +01:00
John MacFarlane
5bf9125770 Removed readerOldDashes and --old-dashes option, added old_dashes extension.
API change.  CLI option change.
2017-01-25 17:07:42 +01:00
John MacFarlane
6f8b967d98 Removed readerSmart and the --smart option; added Ext_smart extension.
Now you will need to do

    -f markdown+smart

instead of

    -f markdown --smart

This change opens the way for writers, in addition to readers,
to be sensitive to +smart, but this change hasn't yet been made.

API change. Command-line option change.

Updated manual.
2017-01-25 17:07:42 +01:00
John MacFarlane
3876b91448 Make Extensions a custom type instead of a Set Extension.
The type is implemented in terms of an underlying bitset
which should be more efficient.

API change: from Text.Pandoc.Extensions export Extensions,
emptyExtensions, extensionsFromList, enableExtension, disableExtension,
extensionEnabled.
2017-01-25 17:07:42 +01:00
John MacFarlane
1427252160 Split extensions code from Options into separate Text.Pandoc.Extensions.
API change.
However, Extensions exports Options, so this shouldn't have
much impact.
2017-01-25 17:07:42 +01:00
John MacFarlane
93e4cd9f8c Fixed something small that broke in rebase. 2017-01-25 17:07:42 +01:00
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