aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/Docx
AgeCommit message (Collapse)AuthorFilesLines
2014-08-16Rewrite Docx.hs and Reducible to use Builder.Jesse Rosenthal1-189/+175
The big news here is a rewrite of Docx to use the builder functions. As opposed to previous attempts, we now see a significant speedup -- times are cut in half (or more) in a few informal tests. Reducible has also been rewritten. It can doubtless be simplified and clarified further. We can consider this, at the moment, a reference for correct behavior.
2014-08-13Docx: Reducible forgot about smallcapsJesse Rosenthal1-0/+2
2014-08-12Docx reader: accept explicit "Italic" and "Bold" rStyles.Jesse Rosenthal1-13/+13
Note that "Italic" can be on, and, from the last commit, `<w:i>` can be present, but be turned off. In that case, the turned-off tag takes precedence. So, we have to distinguish between something being off and something not being there. Hence, isItalic, isBold, isStrike, and isSmallCaps have become Maybes.
2014-08-12Docx Reader: Fix font style parsing.Jesse Rosenthal1-12/+27
Before we just checked for the existence of a tag. Now, we make sure to check for its on/off value.
2014-08-12Docx reader: move combining logic to ReducibleJesse Rosenthal1-0/+10
Introduces a new function in Reducibles, concatR. The idea is that if we have two list of Reducibles (blocks or inlines), we can combine them and just perform the reduction on the joining parts (the last element of the first list, the first element of the second list). This is useful in cases where the two lists are already reduced, and we're only worried about the joining elements. This actually improves the efficiency a bit further, because concatR can be smart about empty lists.
2014-08-11Add dropCap to paragraph style.Jesse Rosenthal1-2/+12
2014-08-11Docx reader: handle empty reducibles.Jesse Rosenthal1-5/+6
2014-08-11Docx Parse: Improved font recognition when specified in rFonts elementMatthew Pickering1-8/+27
2014-08-11Docx Fonts: Derives Show and EqMatthew Pickering1-0/+1
2014-08-10Merge pull request #1510 from jkr/spacefixJohn MacFarlane1-10/+12
Docx reader: Fix spacing issue.
2014-08-10Removed OMath module, depend on texmath >= 0.8.John MacFarlane2-439/+1
2014-08-10Change head/tail to pattern guards.Jesse Rosenthal1-7/+8
2014-08-09Docx reader: Fix spacing issue.Jesse Rosenthal1-9/+10
Previously spaces at the beginning of Emph/Strong/etc were kept inside. This makes sure they are moved out.
2014-08-09Docx Parse: Recognises code points in sym elements which are in the private ↵Matthew Pickering1-1/+4
range
2014-08-09Added Text.Pandoc.Readers.Docx.FontsMatthew Pickering1-0/+237
2014-08-09Docx Reader: Added recognition of sym element in paragraphsMatthew Pickering1-0/+19
2014-08-08OMath parser: Change signature of exported function.Jesse Rosenthal2-7/+20
This changes the signature of the exported `readOMML` to `String -> Either String [Exp]`, so it can now, in theory, be slotted into TeXMath. It doesn't have any real error reporting yet, but that might make more sense once I put it in a branch, and understand how it works in the other readers. It also now reads strings that parse to either oMath or oMathPara elements. Note that the distinction is lost in the output. It's up to the caller to remember the display type.
2014-08-08OMath: Finish initial cleanup.Jesse Rosenthal2-536/+54
This gets rid of commented-out functions, cleans up whitespace errors, and exports and imports the correct functions.
2014-08-08OMath: Remove NamespacesJesse Rosenthal2-287/+290
We still need to test against prefixes, but this is only going to look at oMath fragments, so we're not going to be worried about looking up the real namespace.
2014-08-08OMath: Start phasing out internal OMath type.Jesse Rosenthal1-0/+276
This is the first step in removing the intermediate OMath type, which we no longer need since we're writing straight to TeXMath Exp.
2014-08-08OMath parser: don't group expressions if there's only one.Jesse Rosenthal1-3/+3
2014-08-07Merge pull request #1494 from jkr/math-moduleJohn MacFarlane2-366/+629
Math module
2014-08-07Docx reader: Handle inline drawings.Jesse Rosenthal1-3/+15
Previous drawings that were under some other toplevel run (i.e., a hyperlink) wouldn't be properly handled. This should fix that.
2014-08-07OMath module: Add new file.Jesse Rosenthal1-0/+622
2014-08-07Docx reader: Split math out into math module.Jesse Rosenthal1-366/+7
Could use some cleanup, but this is the first step for getting an OMML reader into TeXMath.
2014-08-06Remove now-unnecessary TexCharJesse Rosenthal1-4386/+0
TeXMath does the work now.
2014-08-06Add a note on how `mapD` works.Jesse Rosenthal1-0/+3
2014-08-06Docx reader: Use TeXMath to write mathJesse Rosenthal1-22/+125
The new version of TeXMath can translate from its type system into LaTeX. So instead of writing the LaTeX ourself, we write to the TeXMath `Exp` type, and let TeXMath do the rest.
2014-08-01Docx Parser: Produce endnotes.Jesse Rosenthal1-2/+2
The parser had been changing footnotes and endnotes into footnotes. This isn't a problem, because pandoc collapses them, but the parser should maintain as much of the docx structure as is collapsed, and let the toplevel reader worry about how to translate it into Pandoc. (This would be an issue when, as is planned, the docx parser spins off into its own module.) The output is the same, so no test change is required.
2014-07-30Docx reader: Make docx reader put image data in MediaBag.Jesse Rosenthal1-5/+5
Image data will not be put in a media bag map, which will be output along with the pandoc output.
2014-07-12Removed space at ends of lines in source.John MacFarlane4-36/+36
2014-07-12Docx Reader: Add a compatibility layer for Except.Jesse Rosenthal1-3/+3
mtl switched from ErrorT to ExceptT, but we're not sure which mtl we'll be dealing with. This should make errors work with both. The main difference (beside the name of the module and the monad transformer) is that Except doesn't require an instance of an Error Typeclass. So we define that for compatability. When we switch to a later mtl, using Control.Monad.Exception, we can just erase the instance declaration, and all should work fine.
2014-07-12Docx Reader: A nicer Docx type.Jesse Rosenthal1-685/+670
This modifies the Docx type in the parser to avoid all the extra files (Notes, numbering, etc). A reader monad keeps track of these, and applies them at the end. The reader monad is stacked with ErrorT to enable better error-handling than the old Maybes. (Note that the better error handling isn't really there yet, but it is now possible.) One long-term goal of these changes is to make it easier to write the Docx type. This should make it easier to develop a standalone docx package in the future.
2014-07-02Docx Reader: Add new file, TexChar.Jesse Rosenthal1-0/+4386
This will allow us to deal with unicode characters from word equations. This part of the process will need to continue to be improved.
2014-07-02Docx Reader: Parse omml equations.Jesse Rosenthal1-8/+336
2014-06-29Docx reader: Add ParIndentation type to parser.Jesse Rosenthal1-5/+26
This lets us keep more information about the indentation, and act accordingly in the reader.
2014-06-25Docx reader: Code cleanup in parse.Jesse Rosenthal1-38/+12
Remove some redundant ways of dealing with Maybe.
2014-06-25Docx reader: Remove unnecessary filter in Parse.Jesse Rosenthal1-7/+2
mapMaybe does the filtering for us.
2014-06-25Docx reader: Parse Insertions and Deletions.Jesse Rosenthal1-1/+17
This is just for the Parse module, reading it into the Docx format. It still has to be translated into pandoc.
2014-06-25Docx Reader: Add change typesJesse Rosenthal1-1/+5
Insertion and deletion. Dates are just strings for now.
2014-06-23Add copyright block to T.P.R.Docx.Reducible.Jesse Rosenthal1-0/+31
2014-06-23Move some of the clean-up logic into List module.Jesse Rosenthal1-3/+22
This will allow us to get rid of more general functions we no longer need in the main reader.
2014-06-23Add new typeclass, ReducibleJesse Rosenthal1-0/+150
This defines a typeclass `Reducible` which allows us to "reduce" pandoc Inlines and Blocks, like so Emph [Strong [Str "foo", Space]] <++> Strong [Emph [Str "bar"]], Str "baz"] = [Strong [Emph [Str "foo", Space, Str "bar"], Space, Str "baz"]] So adjacent formattings and strings are appropriately grouped. Another set of operators for `(Reducible a) => (Many a)` are also included.
2014-06-19Add literal tabs to parser.Jesse Rosenthal1-1/+4
2014-06-16Naming: Use Docx instead of DocX.John MacFarlane2-0/+812
For consistency with the existing writer.