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?
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.
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.
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.
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.