aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers
AgeCommit message (Collapse)AuthorFilesLines
2014-07-16Docx Reader: Fix hdr auto-id when already auto-id.Jesse Rosenthal1-11/+19
If header anchors (bookmarks in a header paragraph) already have an auto-id, which will happen if they're generated by pandoc, we don't want to rename it twice, and thus end up with an unnecessary number at the end. So we add a state value to check if we're in a header. If we are, we don't rename the bookmark -- wait until we rename it in our header handling.
2014-07-16Docx Reader: Change state handling.Jesse Rosenthal1-16/+12
We don't need `updateDState` -- the built-in `modify` works just fine. And we redefine `withDState` to use modify.
2014-07-13Use renderTags' for all tag rendering.John MacFarlane1-1/+1
This properly handles tags that should be self-closing. Previously `<hr/>` would appear in EPUB output as `<hr></hr>`. Closes #1420.
2014-07-12Removed space at ends of lines in source.John MacFarlane5-45/+45
2014-07-12Merge pull request #1414 from mpickering/generalJohn MacFarlane5-13/+13
Improvements to Parsing.hs
2014-07-12Merge pull request #1415 from jkr/nicertypeJohn MacFarlane2-751/+712
Nicer Docx type
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 Rosenthal2-751/+712
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-11Removed (>>~) functionMatthew Pickering5-13/+13
This function is equivalent to the more general (<*) which is defined in Control.Applicative. This change makes pandoc code easier to understand for those not familar with the codebase.
2014-07-10Fixed an issue caused by e4263d306e6988dd322c895242eb818d22b9e012.John MacFarlane1-0/+5
This sets `stateInHtmlBlock` to `Just "div"` when we're parsing an HTML div. Without this fix, a closing `</div>` tag could be parsed as part of a list item rather than after the list.
2014-07-10Markdown reader: Fixed regression with intraword underscores.John MacFarlane1-10/+16
Closes #1121.
2014-07-10Markdown reader: Slight rewrite of enclosure/emphOrStrong code.John MacFarlane1-6/+8
Semantics should be the same.
2014-07-07Revamped raw HTML block parsing in markdown.John MacFarlane1-42/+47
- We no longer include trailing spaces and newlines in the raw blocks. - We look for closing tags for elements (but without backtracking). - Each block-level tag is its own RawBlock; we no longer try to consolidate them (though `--normalize` will do so). Closes #1330.
2014-07-07HTML reader: adjust `blockTags` and `eitherBlockOrInline`.John MacFarlane1-9/+13
- Added `audio` and `source` in `eitherBlockOrInline`. - Moved `video`, `svg`, `progress`, `script`, `noscript`, `svg` from `blockTags` to `eitherBlockOrInline`. - `map` and `object` were mistakenly in both lists; they have been removed from `blockTags`.
2014-07-02Docx Reader: Write LaTeX based on equations in word.Jesse Rosenthal1-4/+172
This is a first stab at writing out equations in LaTeX based on omml equations in Word. There are some glitches: unicode chars not known to LaTeX are silently skipped, and functions (such as `\oiiint`) not in the standard LaTeX packages are inserted, which can lead to pdf compilation errors (depending, of course, on your preamble). Adding, for example, `\usepackage[charter]{mathdesign}` to the preamble will allow you to use most of the more esoteric functions.
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-30Docx reader: clean up parStyle processing.Jesse Rosenthal1-45/+36
This gets rid of `divAttrToContainers`: an internal convenience function which had become pretty inconvenient. Rather than converting classes and indentations to string lists and back, we deal with the `pPr` attribute directly.
2014-06-29Merge pull request #1386 from jkr/hanging_indentJohn MacFarlane2-15/+51
Fix hanging indent behavior
2014-06-29Docx reader: Make use of new ParIndentation info.Jesse Rosenthal1-10/+25
Here, when hanging indents are greater than or equal to left indents, we don't set it to block quote. Such indents are frequently used in academic bibliographies. (Thanks to Caleb McDaniel.)
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-29Docx Reader: Update state properlyJesse Rosenthal1-3/+8
Previously, a fresh state was created for the purpose of updating. In the future, when there is more than one field in the state, this obviously won't work.
2014-06-28Docx Reader: All headers get auto id.Jesse Rosenthal1-1/+10
Previously, only those with an anchor got an auto id. Now, all do, which puts it in line with pandoc's markdown extension.
2014-06-28Docx Reader: Introduce link rewriting.Jesse Rosenthal1-7/+30
2014-06-28make makeHeaderAnchors make an auto idJesse Rosenthal1-3/+7
Record relationship between original id and auto id, so we can fix links after.
2014-06-28Rewrote header generation.Jesse Rosenthal1-25/+25
In preparation for auto ids.
2014-06-28Docx Reader: Simplify makeHeaderAnchorsJesse Rosenthal1-8/+5
Using pattern guard, in preparation for doing some more complicated stuff with it (recording header anchors, so we can change them to auto ids.)
2014-06-28Docx Reader: Clean up guardsJesse Rosenthal1-9/+9
Use PatternGuards to get rid of need for `isJust`, `fromJust` altogether.
2014-06-28Docx rdr: Avoid mapping makeHeaderAnchors globallyJesse Rosenthal1-4/+4
It only applies to headers, so we can just apply it when we make a header.
2014-06-28Move Docx reader to DocxContext monadJesse Rosenthal1-107/+140
This is a ReaderT State stack, which keeps track of some environment info, such as the options and the docx doc. The state will come in handy in the future, for a couple of planned features (rewriting the section anchors as auto_idents, and hopefully smart-quoting).
2014-06-26Require haddock-library >= 1.1 and simplify haddock reader code.John MacFarlane1-39/+1
See #1346.
2014-06-25Merge pull request #1374 from jkr/track-changes-optionsJohn MacFarlane1-3/+16
Track changes with options
2014-06-25Docx reader: Code cleanup in parse.Jesse Rosenthal1-38/+12
Remove some redundant ways of dealing with Maybe.
2014-06-25Docx reader: Make use of track-changes option.Jesse Rosenthal1-3/+16
2014-06-25Docx reader: Remove unnecessary filter in Parse.Jesse Rosenthal1-7/+2
mapMaybe does the filtering for us.
2014-06-25Docx reader: Add rudimentary track changes support.Jesse Rosenthal1-0/+3
This will only read the insertions, and ignore the deletions.
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-24Docx reader: Ignore zero (or negative) indentJesse Rosenthal1-5/+8
If a block has an indentation less than or equal to zero, it should not be treated as a block quote.
2014-06-24Docx reader: remove T.P.Generic import.Jesse Rosenthal1-1/+0
This marks the removal of the final tree-walk in the code. (Though there is still one in the Lists module.)
2014-06-24Docx reader: pass definition test.Jesse Rosenthal1-8/+13
This commit also fixes a problem with the previous code pushes, which wouldn't allow code blocks to share a div.
2014-06-24Docx reader: pass code tests.Jesse Rosenthal1-33/+47
2014-06-23Add copyright block to T.P.R.Docx.Reducible.Jesse Rosenthal1-0/+31
2014-06-23Merge pull request #1366 from jkr/reducible3John MacFarlane3-276/+283
Docx rewrite and cleanup (in terms of Reducible typeclass)
2014-06-23Use Reducible in docx reader.Jesse Rosenthal1-273/+111
This cleans up them implementation, and cuts down on tree-walking. Anecdotally, I've seen about a 3-fold speedup.
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-23Markdown reader: Combine consecutive latex environments.John MacFarlane1-2/+4
This helps when you have two minipages which can't have blank lines between them. See #690, #1196.
2014-06-22Docx reader: Fix spacing in formatting.Jesse Rosenthal1-1/+1
The normalizing tests revealed a problem with unformatted spaces, brought about by `spanTrim`. This fixes by not trimming the spaces out of spans until they are in their final form.
2014-06-22Implement new normalization.Jesse Rosenthal1-11/+57
There were some problems with the old str normalization. This fixes those problems. Also, since it drills down on its own, it only needs to be mapped over the blocks, not walked over the tree.