Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
This rewrite is primarily motivated by the need to
get macros working properly. A side benefit is that the
reader is significantly faster (27s -> 19s in one
benchmark, and there is a lot of room for further
optimization).
We now tokenize the input text, then parse the token stream.
Macros modify the token stream, so they should now be effective
in any context, including math. Thus, we no longer need the clunky
macro processing capacities of texmath.
A custom state LaTeXState is used instead of ParserState.
This, plus the tokenization, will require some rewriting
of the exported functions rawLaTeXInline, inlineCommand,
rawLaTeXBlock.
* Added Text.Pandoc.Readers.LaTeX.Types (new exported module).
Exports Macro, Tok, TokType, Line, Column. [API change]
* Text.Pandoc.Parsing: adjusted type of `insertIncludedFile`
so it can be used with token parser.
* Removed old texmath macro stuff from Parsing.
Use Macro from Text.Pandoc.Readers.LaTeX.Types instead.
* Removed texmath macro material from Markdown reader.
* Changed types for Text.Pandoc.Readers.LaTeX's
rawLaTeXInline and rawLaTeXBlock. (Both now return a String,
and they are polymorphic in state.)
* Added orgMacros field to OrgState. [API change]
* Removed readerApplyMacros from ReaderOptions.
Now we just check the `latex_macros` reader extension.
* Allow `\newcommand\foo{blah}` without braces.
Fixes #1390.
Fixes #2118.
Fixes #3236.
Fixes #3779.
Fixes #934.
Fixes #982.
|
|
|
|
You can now have the following fields in your YAML metadata,
and it will be treated appropriately in the generated
EPUB.
```
ibooks:
version: 1.3.4
specified-fonts: false
ipad-orientation-lock: portrait-only
iphone-orientation-lock: landscape-only
binding: true
scroll-axis: vertical
```
This commit also fixes a regression in stylesheet paths.
|
|
GitHub has two Markdown modes, one for long-form documents like READMEs
and one for short things like issue coments. In issue comments, a line
break is treated as a hard line break. In README, wikis, etc., it is
treated as a space as in regular Markdown.
Since pandoc is more likely to be used to convert long-form
documents from GitHub Markdown, `-hard_line_breaks` is a better
default.
Closes #3594.
|
|
Closes #3703.
|
|
so they don't cause spurious lists. Previously they were only
if succeeded by a space, not if they were at end of line.
Closes #3773.
|
|
in Text.Pandoc.Lua. Also to pushPandocModule.
This change allows users to override pandoc.lua with a file
in their local data directory, adding custom functions, etc.
@tarleb, if you think this is a bad idea, you can revert this.
But in general our data files are all overridable.
|
|
Also, now we check before running walkM that the function
table actually does contain something relevant. E.g. if
your filter just defines Str, there's no need to run walkM
for blocks, meta, or the whole document. This should
help performance a bit (and it does, in my tests).
|
|
No more SingleQuoted, DoubleQuoted, InlineMath, DisplayMath.
This makes everything uniform and predictable, though it does
open up a difference btw lua filters and custom writers.
|
|
|
|
I tested this with the str.lua filter on MANUAL.txt, and
I could see no significant performance degradation.
Doing things this way will ease maintenance, as we won't
have to manually modify this module when types change.
@tarleb, do we really need special cases for things like
DoubleQuoted and InlineMath?
|
|
It is converted to `a4` in LaTeX and `A4` in ConTeXt.
|
|
|
|
We weren't recursing into inline contexts.
Closes #3770.
|
|
Replace lua errors with `LuaException`s.
|
|
This was suggested by jgm and is consistent with the behavior of other
filtering libraries.
|
|
The code still allowed to pass an arbitrary number of arguments to the
filter function, as element properties were passed as function arguments
at some point. Now we only pass the element as the single arg, so the
code to handle multiple arguments is no longer necessary.
|
|
A figure with an empty caption doesn't make sense.
Closes #2844.
|
|
E.g.
`hello`
.. _hello:
paragraph
This is supported by putting "paragraph" in a Div with
id `hello`.
Closes #262.
|
|
For example,
.. _hello:
.. _goodbye: example.com
Here both `hello` and `goodbye` should link to `example.com`.
Fixes the first part of #262.
|
|
Closes #3519.
|
|
* HTML reader: Use the lang value of <html> to set the lang meta value.
* Fix for pre-AMP environments.
|
|
Closes #2836.
Thanks to @anayrat.
|
|
Changed markdown, rtf, and HTML-based templates accordingly.
This allows you to set `toc: true` in the metadata; this
previously produced strange results in some output formats.
Closes #2872.
For backwards compatibility, `toc` is still set to the
toc contents. But it is recommended that you update templates
to use `table-of-contents` for the toc contents and `toc`
for a boolean flag.
|
|
|
|
|
|
Even though officially they aren't. This suffices
for our purposes.
|
|
- updated comments in Vimwiki.hs to reflect current status of
implementation
- added vimwiki to trypandoc
|
|
Do not parse 3 dashes as horizontal rule and allow whitespace after rule
|
|
|
|
|
|
BCP47 - consistent case for BCP47 fields (e.g. uppercase
for region).
|
|
Text.Pandoc.BCP47 (unexported, internal module).
`getLang`, `Lang(..)`, `parseBCP47`.
|
|
Use a real parsec parser for BCP47, include variants.
|
|
|
|
into `Lang(..)`, `getLang`, `parceBCP47`.
|
|
This improves on the last commit, which didn't work in
some important ways.
See #1667.
|
|
This adds the required attributes to the temporary styles,
and also replaces existing language attributes in styles.xml.
Support for lang attributes on Div and Span has also been
added.
Closes #1667.
|
|
|
|
|
|
|
|
|
|
Now these functions return a pair of a reader/writer and an
Extensions, instead of building the extensions into the
reader/writer. The calling code must explicitly set
readerExtensions or writerExtensions using the Extensions
returned.
The point of the change is to make it possible for the
calling code to determine what extensions are being used.
See #3659.
|
|
[API change]
|
|
|
|
If the metadata field is all on one line, we try to interpret
it as Inlines, and only try parsing as Blocks if that fails.
If it extends over one line (including possibly the `|` or
`>` character signaling an indented block), then we parse as
Blocks.
This was motivated by some German users finding that
date: '22. Juin 2017'
got parsed as an ordered list.
Closes #3755.
|
|
Previously only `markdown` worked.
Note: currently a raw block labeled `markdown_github` will
be printed for any `markdown` format.
|
|
|
|
Documented in MANUAL.txt.
This is enabled by default in pandoc markdown and multimarkdown.
|