aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
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.
2017-04-14Push inlines via lua constructors and constantsAlbert Krewinkel1-41/+29
All element creation tasks are handled in the lua module.
2017-04-13Use lua constructors to push meta valuesAlbert Krewinkel2-32/+150
2017-04-12Lua filter: use destructured functions for inline filtersAlbert Krewinkel1-33/+58
Instead of taking the whole inline element, forcing users to destructure it themselves, the components of the elements are passed to the filtering functions.
2017-04-14s/safed/saved/Alexander Krotov1-1/+1
2017-04-12Man writer: Fix handling of nested font commands.John MacFarlane1-9/+37
Previously pandoc emitted incorrect markup for bold + italic, for example, or bold + code. Closes #3568.
2017-04-11Lua filter: use custom StackValue Inline instanceAlbert Krewinkel2-27/+156
Inline elements are no longer pushed and pulled via aeson's Value.
2017-04-10Docx writer: don't take "distArchive" from datadir.John MacFarlane1-2/+3
The docx writer takes components from the distribution's version of reference.docx when it can't find them in a user's custom reference.docx. (This sometimes happens because Word will sometimes omit components needed for larger documents when saving a simple one.) Previously, we allowed a reference.docx in the data directory (e.g. `~/.pandoc`) to be used as the distribution's reference.docx. This led to a bizarre situation where pandoc would produce a good docx using `--template ~/.pandoc/ref.docx`, but if `ref.docx` were moved to `~/.pandoc/reference.docx`, it would then produce a corrupted docx. Closes #3322 (I think).
2017-04-07Lua filter: improve doc filter performanceAlbert Krewinkel1-36/+47
Pandoc elements are pushed and pulled from the lua stack via custom instances.
2017-04-06Lua filter: Improve block filter performanceAlbert Krewinkel1-7/+44
Reading of simple block values from the lua stack is handled manually, but most block constructors are still handled via instances of aeson's Value type.
2017-04-06Lua filter: Improve inline filter performanceAlbert Krewinkel1-7/+73
Getting inline instances from the lua stack is handled manually for some simple inline constructors, including the `Str` constructor. This avoids the indirect route through aeson's Value type and improves performance considerably (approx. 30% speedup for some filters).
2017-04-04Use lua registry instead of named globalsAlbert Krewinkel1-5/+11
This is slightly cleaner while keeping performance approximately the same.
2017-04-06Ms writer: wider indents for lists.John MacFarlane1-5/+6
Previously some indents weren't wide enough, leading the list item to start on a line after the marker.
2017-04-06Allow raw latex commands starting with `\start` in Markdown.John MacFarlane1-1/+2
Previously these weren't allowed because they were interpreted as starting ConTeXt environments, even without a corresponding \stop... Closes #3558.
2017-04-05Ms writer: respect text wrapping options.John MacFarlane1-1/+6
2017-04-04Ms writer improvements:John MacFarlane1-4/+3
- added some variables to the default template. - cleaner output for images (stringify alt text).
2017-04-04Ms writer: ensure that @ is escaped in URIs.John MacFarlane1-1/+5
Otherwise we may get unescaped @s that give eqn fits, with @ as the delimiter character.
2017-04-04Error: Added PandocOptionError.John MacFarlane2-1/+3
2017-04-04Add original classes to JS obfuscated links (#3554)Timm Albers1-1/+4
HTML links containing classes originally now preserve them when using javascript email obfuscation. Fixes #2989
2017-04-03Add class to footnote back referencesTimm Albers1-1/+1
The HTML writer now also adds the class footnoteBack to back references of footnotes. This allows for easier CSS styling.
2017-04-03Include \VerbatimFootnotes for highlighted code blocksTimm Albers1-2/+5
Updated the LaTeX writer to also include \VerbatimFootnotes in the preamble for highlighted code blocks. Previously this was only done for raw code blocks.
2017-04-03Removed unused import.John MacFarlane1-1/+0
2017-04-03Merge pull request #3550 from tarleb/lua-readers-submoduleJohn MacFarlane3-30/+150
Lua module: add readers submodule
2017-04-02Make sure docx/_rels/.rels gets into data files.John MacFarlane1-1/+5
embedDir in file-embed excludes hidden files, so we need to add this manually.
2017-04-02Revert "Revert "Use file-embed instead of hsb2hs to embed data files.""John MacFarlane1-4/+5
This reverts commit 1fa15c225b515e1fa1c6566f90f1be363a4d770f.
2017-04-02Text.Pandoc.App: Throw errors rather than exiting.John MacFarlane4-55/+68
These are caught (and lead to exit) in pandoc.hs, but other uses of Text.Pandoc.App may want to recover in another way. Added PandocAppError to PandocError (API change). This is a stopgap: later we should have a separate constructor for each type of error. Also fixed uses of 'exit' in Shared.readDataFile, and removed 'err' from Shared (API change). Finally, removed the dependency on extensible-exceptions. See #3548.
2017-04-02Lua module: add readers submoduleAlbert Krewinkel3-30/+150
Plain text readers are exposed to lua scripts via the `pandoc.reader` submodule, which is further subdivided by format. Converting e.g. a markdown string into a pandoc document is possible from within lua: doc = pandoc.reader.markdown.read_doc("Hello, World!") A `read_block` convenience function is provided for all formats, although it will still parse the whole string but return only the first block as the result. Custom reader options are not supported yet, default options are used for all parsing operations.
2017-04-01Allow a theme file as argument to `--highlight-style`.John MacFarlane1-2/+8
Also include a sample, `default.theme`, in `data/`.
2017-04-01Ms writer: added syntax highlighting.John MacFarlane1-5/+84
Closes #3547. Macro definitions are inserted in the template when there is highlighted code. Limitations: background colors and underline currently not supported.
2017-04-01OpenDocument writer: wider labels for lists.John MacFarlane1-2/+2
This avoids overly narrow labels for ordered lists with () delimiters. However, arguably it creates overly wide labels for bullets. Also, lists now start flush with the margin, rather than indented. Fixes #2421.
2017-04-01Change MathJax CDN default since old one is shutting down.John MacFarlane1-1/+1
New URL: https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js Announcement: https://www.mathjax.org/cdn-shutting-down/ NOTE: The new URL requires a version number, which we'll have to update manually in subsequent pandoc releases in order to take advantage of mathjax improvements. Closes #3544.
2017-03-31JATS writer: don't include jats.csl in metadata if csl already specified.John MacFarlane1-1/+3
2017-03-31JATS writer: put references in `<back>`.John MacFarlane1-3/+10
Modified template to include a `<back>` and `<body>` section. This should give authors more flexibility, e.g. to put acknowledgements metadata in `<back>`. References are automatically extracted and put into `<back>`.
2017-03-30Fix compiler warning.John MacFarlane1-1/+1
2017-03-30Allow dynamic loading of syntax definitions.John MacFarlane6-31/+66
See #3334. * Add writerSyntaxMap to WriterOptions. * Highlighting: added parameter for SyntaxMap to highlight. * Implemented --syntax-definition option. TODO: [ ] Figure out whether we want to have the xml parsing depend on the dtd (it currently does, and fails unless the language.dtd is found in the same directory). [ ] Add an option to read a KDE syntax highlighting theme as a custom style. [ ] Add tests.
2017-03-30ZimWiki writer: put in PandocMonad, added warnings for raw.John MacFarlane1-17/+32
2017-03-30Textile writer: moved into PandocMonad.John MacFarlane1-31/+48
Warnings for omitted raw content.
2017-03-30Org writer: move everything into PandocMonad.John MacFarlane1-23/+35
2017-03-30Don't read jats.csl unless we actually need it.John MacFarlane1-5/+6
2017-03-30Automatically include URI-encoded jats.csl for jats output.John MacFarlane1-2/+8
This way people can do pandoc -s -t jats --filter pandoc-citeproc and it will just work. If they want to specify a stylesheet, they still can.
2017-03-30SelfContained: export makeDataURIJohn MacFarlane1-1/+1