aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/Docx.hs
AgeCommit message (Collapse)AuthorFilesLines
2017-05-02Added PandocResourceNotFound error.John MacFarlane1-7/+4
Use this instead of PandocIOError when a resource is not found in path. This improves the error message in this case, see #3629.
2017-04-10Docx writer: don't take "distArchive" from datadir.John MacFarlane1-2/+3
The docx writer takes components from the distribution's version of reference.docx when it can't find them in a user's custom reference.docx. (This sometimes happens because Word will sometimes omit components needed for larger documents when saving a simple one.) Previously, we allowed a reference.docx in the data directory (e.g. `~/.pandoc`) to be used as the distribution's reference.docx. This led to a bizarre situation where pandoc would produce a good docx using `--template ~/.pandoc/ref.docx`, but if `ref.docx` were moved to `~/.pandoc/reference.docx`, it would then produce a corrupted docx. Closes #3322 (I think).
2017-03-30Allow dynamic loading of syntax definitions.John MacFarlane1-1/+2
See #3334. * Add writerSyntaxMap to WriterOptions. * Highlighting: added parameter for SyntaxMap to highlight. * Implemented --syntax-definition option. TODO: [ ] Figure out whether we want to have the xml parsing depend on the dtd (it currently does, and fails unless the language.dtd is found in the same directory). [ ] Add an option to read a KDE syntax highlighting theme as a custom style. [ ] Add tests.
2017-03-20docx writer: lang meta, see #1667 (#3515)Mauro Bieg1-1/+24
2017-03-13Highlighting: highlighting now returns an Either rather than Maybe.John MacFarlane1-3/+7
This allows us to display error information returned by the skylighting library. Display a warning if the highlighting library throws an error.
2017-03-04Stylish-haskell automatic formatting changes.John MacFarlane1-71/+74
2017-03-03Docx writer: Don't include bookmarks on headers unless non-null id.John MacFarlane1-22/+25
Closes #3476.
2017-02-25Docx writer: use Set for dynamic styles to avoid duplicates.John MacFarlane1-8/+10
2017-02-25Docx writer: bookmarks for Span with id.John MacFarlane1-45/+58
And cleaned up code.
2017-02-25Docx writer bookmark improvements.John MacFarlane1-21/+29
- Bookmark start/end now surrounds content rather than preceding it. - Bookmarks generated for Div with id. Fixes jgm/pandoc-citeproc#205. - Cleaner code for handling dir and style attributes for Div.
2017-02-24Implemented `\graphicspath` in LaTeX reader.John MacFarlane1-68/+78
Closes #736.
2017-02-22imageSize interface changemb211-1/+1
`imageSize img` is now `imageSize opts img`
2017-02-22make imageSize recognize basic SVG dimensions, see #3462mb211-0/+1
2017-02-17Added warnings for non-rendered blocks to some writers.John MacFarlane1-4/+8
2017-02-11Use new warnings throughout the code base.John MacFarlane1-2/+3
2017-01-25Removed writerHighlight; made writerHighlightStyle a Maybe.John MacFarlane1-21/+8
API change. For no highlighting, set writerHighlightStyle to Nothing.
2017-01-25Revert "Added page breaks into Pandoc."John MacFarlane1-1/+0
This reverts commit f02a12aff638fa2339192231b8f601bffdfe3e14.
2017-01-25Text.Pandoc.Shared: Removed fetchItem, fetchItem'.John MacFarlane1-4/+5
Made changes where these are used, so that the version of fetchItem from PandocMonad can be used instead.
2017-01-25Removed `--normalize` option and normalization functions from Shared.John MacFarlane1-2/+2
* 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-25Class: Removed getDefaultReferenceDocx/ODT from PandocMonad.John MacFarlane1-2/+3
We don't need these, since the default docx and odt can be retrieved using `readDataFile datadir "reference.docx"` (or odt).
2017-01-25Class: removed 'fail' from PandocMonad.John MacFarlane1-1/+1
Do we need this? I don't see why. There's a name clash which would better be avoided.
2017-01-25Simplified reference-docx/reference-odt to reference-doc.John MacFarlane1-1/+1
* 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-25Class: rename addWarning[WithPos] to warning[WithPos].John MacFarlane1-1/+1
There's already a function addWarning in Parsing! Maybe we can dispense with that now, but I still like 'warning' better as a name.
2017-01-25Class: Renamed 'warn' to 'addWarning' and consolidated RTF writer.John MacFarlane1-1/+1
* 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]
2017-01-25Refactored math conversion in writers.John MacFarlane1-12/+6
* Remove exported module `Text.Pandoc.Readers.TeXMath` * Add exported module `Text.Pandoc.Writers.Math` * The function `texMathToInlines` now lives in `Text.Pandoc.Writers.Math` * Export helper function `convertMath` from `Text.Pandoc.Writers.Math` * Use these functions in all writers that do math conversion. This ensures that warnings will always be issued for failed math conversions.
2017-01-25Fixes to compile after rebase.John MacFarlane1-1/+2
2017-01-25Convert writers to use PandocMonad typeclass.Jesse Rosenthal1-44/+38
Instead of Free Monad with runIO
2017-01-25Remove readFileStrict.Jesse Rosenthal1-1/+1
We only used it once, and then immediately converted to lazy.
2017-01-25Implement runTest functions.Jesse Rosenthal1-11/+8
These work with a State monad and a Reader monad to produce deterministic results. It can probably be simplified somewhat.
2017-01-25Introduce pure versions of IO Writers.Jesse Rosenthal1-27/+39
Using Text.Pandoc.Free, introduce pure versions of Docx, EPUB, ICML, and ODT writers. Each of the pure versions is exported along with the IO version (produced by running `runIO` on the pure reader). Ideally, this should make the writers easier to test.
2017-01-25Adds support for pagebreaks (when it makes sense)Hubert Plociniczak1-1/+8
Update all writers to take into account page breaks. A straightforwad, far from complete, implementation of page breaks in selected writers. Readers will have to follow in the future as well.
2016-12-23Updates to use skylighting rather than highlighting-kate.John MacFarlane1-3/+3
So far this just reproduces capacity. Later we'll be able to add features like warning messages, dynamic loading of xml syntax definitions, and dynamic loading of themes.
2016-11-22Docx writer: Give full detail when there are errors converting tex math.John MacFarlane1-1/+2
2016-11-22Put 'warn' in MonadIO. Add warnings for math conversions in docx.John MacFarlane1-2/+4
2016-11-18Docx writer: fixed XML markup for empty cells.John MacFarlane1-1/+1
Closes #3238. Previously the Compact style wasn't being applied properly to empty cells.
2016-11-02Docx writer: Handle title text in images.Jesse Rosenthal1-2/+2
We already handled alt text. This just puts the image "title" into the docx "title" attr.
2016-10-13Add support for the LineBlock element to writersAlbert Krewinkel1-6/+5
The following markup features are used to output the lines of the `LineBlock` element: - AsciiDoc: a `[verse]` block, - ConTeXt: text surrounded by `\startlines` and `\endlines`, - HTML: `div` with an per-element style setting to interpret the content as pre-wrapped, - Markdown: line blocks if the `line_blocks` extension is enabled, a simple paragraph with hard linebreaks otherwise, - Org: VERSE block, - RST: a line block, and - all other formats: a paragraph, containing hard linebreaks between lines. Custom lua writers should be updated to use the `LineBlock` element.
2016-10-05Docx writer: Move one more env var to Reader monadJesse Rosenthal1-6/+5
PrintWidth is set at the beginning and stays the same throughout the document writing, so we just set it as an env variable in the Reader monad.
2016-10-05Docx writer: code legibility fixups.Jesse Rosenthal1-5/+6
More meaningful variable name, and explanatory comment.
2016-10-04Docx writer: Clean up and streamline RTL behaviorJesse Rosenthal1-71/+77
Now RTL is turned and off by a general function, `withDirection` wrapping `inlineToOpenXML` and `blockToOpenXML`. This acts according to the `envRTL` variable. This means we can just set the environment at the outset, and change the environment with `local` as need be. Note that this requires making the `inlineToOpenXML` and `blockToOpenXML` functions into wrappers around primed-versions (`{inline,block}ToOpenXML`) where the real work takes place.
2016-10-04Docx writer: move a couple more vars to ReaderTJesse Rosenthal1-21/+29
In general, we want things that are either: 1. unchanging environment variables, or 2. environment variables that will change for a the scope of a function and then pop back to be in the reader monad. This is safer for (1), since we won't accidentally change it, and easier for (2), since we can use `local` instad of setting the old value and then resetting. We keep the StateT monad for values that we will want to accumulate or change and then use later.
2016-10-03Clean up commented-out codeJesse Rosenthal1-12/+0
A few commented out functions were left in the code during the conversion from StateT to ReaderT. This removes them.
2016-10-03Remove bool on setRTL.Jesse Rosenthal1-17/+13
We had to use this because we set the env, which means that setRTL wouldn't do anything at the top level. We now don't set the env (it will always be false at the outset), which means the toplevel setRTL will work if necessary.
2016-10-03Filter text/para props correctly.Jesse Rosenthal1-2/+2
We only filter on the name, not the prefix.
2016-10-03Add a boolean flag to the setRTL function.Jesse Rosenthal1-5/+5
At the toplevel we don't check to see if RTL is already set.
2016-10-03Test for "dir" metadata.Jesse Rosenthal1-2/+7
2016-10-03Add setRTL and setLTR functions.Jesse Rosenthal1-8/+41
2016-10-03Move more enviroment vars to Reader Monad.Jesse Rosenthal1-62/+52
Things that get pushed and then reset are better in ReaderT, because they can be run with `local`.
2016-10-03Add ReaderT env to the docx writer:Jesse Rosenthal1-8/+17
This will allow us to add text and paragraph properties depending on if rtl is already set or not. (It would probably be cleaner and safer to move the paraprops and textprops to this part of the stack in the future.)
2016-09-02Remove Compat.MonoidJesse Rosenthal1-1/+1
This was only necessary for GHC versions with base below 4.5 (i.e., ghc < 7.4).