Age | Commit message (Collapse) | Author | Files | Lines |
|
Docx rewrite and cleanup (in terms of Reducible typeclass)
|
|
This cleans up them implementation, and cuts down on tree-walking.
Anecdotally, I've seen about a 3-fold speedup.
|
|
This will allow us to get rid of more general functions we no longer need in
the main reader.
|
|
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.
|
|
This helps when you have two minipages which can't have
blank lines between them.
See #690, #1196.
|
|
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.
|
|
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.
|
|
`<span style="font-variant:small-caps;">foo</span>` will be
parsed as a `SmallCaps` inline, and will work in all output
formats that support small caps.
Closes #1360.
|
|
The opening "{{" must be followed by an alphanumeric or ':'.
This prevents the exponential slowdown in #1033.
Closes #1033.
|
|
|
|
When the `hard_line_breaks` option was specified, pandoc would
produce a spurious line break after a tight list item. This
patch solves the problem. Closes #1137.
|
|
We let a `</table>` tag close an open `<tr>` or `<td>`.
Closes #1167.
|
|
|
|
This was how it used to be before it was folded into blockNormalize.
|
|
`normalize` from Text.Pandoc.Shared is more general. In tests, though,
it more than doubles the run time. `strNormalize` does less, but it does
what we need. This comment is added for future maintainability.
|
|
Previously DefinitionList had been left out of `blockNormalize`. Now it
is included.
|
|
Use a function `stripSpaces`, instead of recursion. Makes it a bit
easier to read and mantain, and simplify normalizing DefinitionList,
which was left out the first time.
|
|
`blockNormalize` previously forgot to account for the case in which a
Header's inlines did not start with a space.
|
|
Test case:
```
<table border="1">
<colgroup>
<col> </col>
<col></col>
</colgroup>
<tbody>
<tr>
<td>X</td>
<td>Y</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
</tr>
</tbody>
</table>
```
|
|
This will help take care of spaces introduced at the beginning of strings.
|
|
|
|
|
|
|
|
|
|
This brings pandoc's rendering of haddock markup in line
with the new haddock.
Note that we preserve line breaks in `@` code blocks, unlike
the earlier version.
Modified tests pass. More tests would be good.
|
|
This also removes the dependency on alex and happy.
|
|
Closes #1236.
Note, this is a bit of a kludge, to work around the fact that xml-light
doesn't parse `<?asciidoc-br?>` correctly. We preprocess the input,
replacing that instruction with `<br/>`, and then parse that as a line
break. Other XML instructions are simply removed from the input stream.
|
|
LaTeX seems to treat them as if they have empty cells at the
end. Closes #241.
|
|
|
|
For consistency with the existing writer.
|
|
|
|
Closes #1345. Also relabeled 'code' and 'verbatim' parsers
to accord with the org-mode manual.
I'm not sure what the distinction between code and verbatim
is supposed to be, but I'm pretty sure both should be represented
as Code inlines in pandoc. The previous behavior resulted in the
text not appearing in any output format.
|
|
This allows blank lines at end of multiline headers.
|
|
|
|
`\emph{ hi }` gets parsed as `[Space, Emph [Str "hi"], Space]`
so that we don't get things like `* hi *` in markdown output.
Also applies to textbf and some other constructions.
Closes #1146. (`--normalize` isn't touched by this, but
normalization should not generally be necessary with the
changes to the readers.)
|
|
Closes #1338.
|
|
Table cells were being combined into one cell. Closes #1341.
|
|
Moved extractSpaces to Shared.hs
|
|
This change rewrites `inlineLaTeXCommand` so that parsec will
know when input is being consumed. Previously a run-time
error would be produced with some input involving raw latex.
(I believe this does not affect the last release, as the inline
latex reading was added recently.)
|
|
Generalised and move the extractSpaces function from `HTML.hs` to
`Shared.hs` so that the docx reader can also use it.
|
|
This introduces Text.Pandoc.DocX, and its exported `readDocX` function.
|
|
|
|
This resolves the issue illustrated in
http://stackoverflow.com/questions/24009489/comments-in-latex-break-pandoc-table.
|
|
Org reader: support for inline LaTeX
|
|
in github-style fenced blocks. Closes #1318.
Note: This is special-case handling of these two cases.
It would be good to do something more systematic.
|
|
Inline LaTeX is now accepted and parsed by the org-mode reader. Both,
math symbols (like \tau) and LaTeX commands (like \cite{Coffee}), can be
used without any further escaping.
|
|
Org reader: support Pandocs citation extension
|
|
Citations are defined via the "normal citation" syntax used in markdown,
with the sole difference that newlines are not allowed between "[...]".
This is for consistency, as org-mode generally disallows newlines
between square brackets.
The extension is turned on by default and can be turned off via the
default syntax-extension mechanism, i.e. by specifying "org-citation" as
the input format.
Move `citeKey` from Readers.Markdown into Parsing
The function can be used by other readers, so it is made accessible for
all parsers.
|
|
The function can be used by other readers, so it is made accessible for
all parsers.
|
|
Both `ParserState` and `OrgParserState` keep track of the parser position at
which the last string ended. This patch introduces a new class
`HasLastStrPosition` and makes the above types instances of that class. This
enables the generalization of functions updating the state or checking if one
is right after a string.
|