aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc
AgeCommit message (Collapse)AuthorFilesLines
2017-04-30Provide shared F monad functions for Markdown and Org readersAlbert Krewinkel4-52/+36
The `F` monads used for delayed evaluation of certain values in the Markdown and Org readers are based on a shared data type capturing the common pattern of both `F` types.
2017-04-30Add returnF to Text.Pandoc.ParsingAlexander Krotov2-3/+3
2017-04-30Org reader: Avoid creating nullMeta by applying setMeta directlyAlexander Krotov1-4/+1
2017-04-29LaTeX writer: Fix problem with escaping in lstinline.John MacFarlane1-1/+6
Previously the LaTeX writer created invalid LaTeX when `--listings` was specified and a code span occured inside emphasis or another construction. This is because the characters `%{}\` must be escaped in lstinline when the listinline occurs in another command, otherwise they must not be escaped. To deal with this, adoping Michael Kofler's suggestion, we always wrap lstinline in a dummy command `\passthrough`, now defined in the default template if `--listings` is specified. This way we can consistently escape the special characters. Closes #1629.
2017-04-28LaTeX writer: don't use lstinline it \item[..].John MacFarlane1-1/+7
If you do, the contents of item disappear or are misplaced. Use `\texttt` instead. Closes #645.
2017-04-28Ms writer: make use of already defined render' (#3613)Alexander Krotov1-2/+2
2017-04-28Muse writer: Do not reflow directives (#3614)Alexander Krotov1-2/+2
Directives at the beginning of documents cannot span multiple lines so they must not be reflown.
2017-04-26Lua module: provide simple `read` format parserAlbert Krewinkel2-67/+28
A single `read` function parsing pandoc-supported formats is added to the module. This is simpler and more convenient than the previous method of exposing all reader functions individually.
2017-04-26API change: move writer functions to Text.Pandoc.WritersAlbert Krewinkel1-0/+193
Writer helper functions were defined in the top-level Text.Pandoc module. These functions are moved to the Writer submodule as to enable reuse in other submodules.
2017-04-26API change: move reader functions to Text.Pandoc.ReadersAlbert Krewinkel1-0/+146
Reader helper functions were defined in the top-level Text.Pandoc module. These functions are moved to the Readers submodule as to enable reuse in other submodules.
2017-04-26API change: move extension handling to Text.Pandoc.ExtensionsAlbert Krewinkel1-4/+74
Extension parsing and processing functions were defined in the top-level Text.Pandoc module. These functions are moved to the Extensions submodule as to enable reuse in other submodules.
2017-04-26Lua filter: allow filtering of meta data onlyAlbert Krewinkel1-1/+13
2017-04-26Lua filter: allow natural access to meta elementsAlbert Krewinkel1-1/+1
Meta elements that are treated as lua tables (i.e. MetaList, MetaInlines, MetaBlocks, and MetaMap), are no longer wrapped in an additional table but simply marked via a metatable. This allows treating those meta values just like normal tables, while still making empty elements of those values distinguishable.
2017-04-26LaTeX reader: Add basic support for hyphenat package (#3603)schrieveslaach1-1/+13
2017-04-26Simplify linkText in Text.Pandoc.Readers.TWiki (#3605)Alexander Krotov1-2/+2
Avoid constructing list of one element ([B.str url]) just to flatten it back with mconcat.
2017-04-26LaTeX reader: Add support for \vdots (#3607)schrieveslaach1-0/+1
2017-04-25HTML line block: Use class instead of style attribute.John MacFarlane1-1/+1
We now issue `<div class="line-block">` and include a default definition for `line-block` in the default templates, instead of hard-coding a `style` on the div. Closes #1623.
2017-04-25LaTeX writer: fix error with line breaks after empty content.John MacFarlane1-19/+28
LaTeX requires something before a line break, so we insert a `~` if no printable content has yet been emitted. Closes #2874.
2017-04-24LaTeX reader: better support for subfigure package.John MacFarlane1-5/+11
A figure with two subfigures turns into two pandoc figures; the subcaptions are used and the main caption ignored, unless there are no subcaptions. Closes #3577.
2017-04-24TWiki reader: remove unnecessary $ (#3597)Alexander Krotov1-1/+1
2017-04-23Org reader: allow multi-word arguments to src block paramsAlbert Krewinkel1-2/+5
The reader now correctly parses src block parameter list even if parameter arguments contain multiple words. Closes: #3477
2017-04-23Org reader: stop adding rundoc prefix to src paramsAlbert Krewinkel3-39/+24
Source block parameter names are no longer prefixed with *rundoc*. This was intended to simplify working with the rundoc project, a babel runner. However, the rundoc project is unmaintained, and adding those markers is not the reader's job anyway. The original language that is specified for a source element is now retained as the `data-org-language` attribute and only added if it differs from the translated language.
2017-04-23Org reader: handle line numbering switch for src blocksAlbert Krewinkel1-13/+57
The line-numbering switch that can be given to source blocks (`-n` with an start number as an optional parameter) is parsed and translated to a class/key-value combination used by highlighting and other readers and writers.
2017-04-23HTML reader: Revise treatment of li with id attribute.John MacFarlane1-2/+6
Previously we always added an empty div before the list item, but this created problems with spacing in tight lists. Now we do this: If the list item contents begin with a Plain block, we modify the Plain block by adding a Span around its contents. Otherwise, we add a Div around the contents of the list item (instead of adding an empty Div to the beginning, as before). Closes #3596.
2017-04-22Add siunitx Support (#3588)schrieveslaach1-0/+17
For example: ```latex \SI[round-precision=2]{1}{m} is equal to \SI{1000}{mm}. \SI[round-precision=2]{1}[\$]{} is equal to \SI{0.938094}{\euro} ```
2017-04-18Lua: drop useless filter function type parameterAlbert Krewinkel1-28/+20
The return-type parameter for lua filter functions is removed. It only complicated the code without introducing any additional type safety.
2017-04-16Org reader: allow emphasized text to be followed by `[`Albert Krewinkel1-1/+1
Closes: #3577
2017-04-16Read image size of Inkscape SVGs (#3580)schrieveslaach1-4/+4
2017-04-16Org reader: convert markup at beginning of footnotesAlbert Krewinkel1-1/+1
Closes: #3576
2017-04-15Lua filter: revert to non-destructuring filtersAlbert Krewinkel1-66/+46
We want to provide an interface familiar to users of other filtering libraries.
2017-04-15Small fix to error reporting in App.John MacFarlane1-4/+2
Closes #3548.
2017-04-15Avoid parsing "Notes:**" as a bare URI.John MacFarlane1-0/+2
This avoids parsing bare URIs that start with a scheme + colon + `*`, `_`, or `]`. Closes #3570.
2017-04-15Error: Added PandocCouldNotFindDataFileError.John MacFarlane3-7/+9
Use this instead of PandocAppError when appropriate. Removed exit code from PandocAppError, use 1 for all.
2017-04-15Fixed shadowing warningsJohn MacFarlane1-5/+5
2017-04-15Docx reader: removed readDocxWithWarnings (API change).John MacFarlane1-9/+1
No longer necessary with pandoc 2.0 framework.
2017-04-15App: use PandocOptionError instead of PandocAppError where appropriate.John MacFarlane1-16/+16
2017-04-15Error: Added PandocFilterError.John MacFarlane2-8/+7
2017-04-15Error: Added PandocPDFErrorJohn MacFarlane2-1/+3
2017-04-15Text.Pandoc.Error: added new constructors.John MacFarlane2-9/+13
- PandocSyntaxMapError String - PandocFailOnWarningError - PandocPDFProgramNotFoundError String
2017-04-15Revised error message for pandoc -t pdf.John MacFarlane1-4/+4
2017-04-15Lua filter: use Attributes constructor for AttrsAlbert Krewinkel1-14/+26
Element attributes are pushed to the stack via the `Attributes` function. `Attributes` creates an Attr like triple, but the triple also allows table-like access to key-value pairs.
2017-04-14Lua filter: allow shorthand functions for math and quotedAlbert Krewinkel1-3/+23
Allow to use functions named `SingleQuoted`, `DoubleQuoted`, `DisplayMath`, and `InlineMath` in filters.
2017-04-14Lua filter: Re-order code of stack value instancesAlbert Krewinkel1-106/+122
2017-04-14Lua filter: use lua strings for nullary constructorsAlbert Krewinkel1-80/+19
Lua string are used to represent nullary data constructors. The previous table-based representation was based on the JSON serialization, but can be simplified. This also matches the way those arguments are passed to custom writers.
2017-04-14Avoid repeating StackValue instances definitionsAlbert Krewinkel4-156/+165
The lua filters and custom lua writer system defined very similar StackValue instances for strings and tuples. These instance definitions are extracted to a separate module to enable sharing.
2017-04-14Extract lua helper functions into Lua.Util moduleAlbert Krewinkel4-131/+151
2017-04-14Use lua bools and strings for MetaBool, MetaStringAlbert Krewinkel1-2/+2
Native lua booleans and strings are used to represent MetaBool and MetaString values. This is more natural than the previous table-based representation. The old lua representation can still be read back to haskell, ensuring compatibility with the `pandoc.MetaBool` and `pandoc.MetaString` lua constructors.
2017-04-14Lua filter: use destructured functions for block filtersAlbert Krewinkel1-17/+23
Filtering functions take element components as arguments instead of the whole block elements. This resembles the way elements are handled in custom writers.
2017-04-14Drop dependency on hslua-aesonAlbert Krewinkel2-19/+15
Pushing values to the lua stack via custom functions is faster and more flexible.
2017-04-14Push blocks via lua constructors and constantsAlbert Krewinkel1-37/+102
All element creation tasks are handled by lua functions defined in the pandoc module.