Commit graph

167 commits

Author SHA1 Message Date
Albert Krewinkel
3097ee100e
pandoc.mediabag module: add items function iterating over mediabag
A new function `pandoc.mediabag.items` was added to Lua module
pandoc.mediabag. This allows users to lazily iterate over all media bag
items, loading items into Lua one-by-one. Example:

    for filename, mime_type, content in pandoc.mediabag.items() do
      -- use media bag item.
    end

This is a convenient alternative to using `mediabag.list` in combination
with `mediabag.lookup`.
2019-05-29 23:17:12 +02:00
Albert Krewinkel
8507d98a15
doc/lua-filters.md: improve docs for Version type/constructor 2019-05-29 22:59:45 +02:00
Albert Krewinkel
505f5bf5d9
Lua: add Version type to simplify comparisons
Version specifiers like `PANDOC_VERSION` and `PANDOC_API_VERSION` are
turned into `Version` objects. The objects simplify version-appropriate
comparisons while maintaining backward-compatibility.

A function `pandoc.types.Version` is added as part of the newly
introduced module `pandoc.types`, allowing users to create version
objects in scripts.
2019-05-29 10:07:43 +02:00
Albert Krewinkel
786594b23b Lua: add pandoc.system module (#5468)
The `system` Lua module provides utility functions to interact with the
operating- and file system. E.g.

    print(pandoc.system.get_current_directory())

or

    pandoc.system.with_temporary_directory('tikz', function (dir)
      -- write and compile a TikZ file with pdflatex
    end)
2019-05-04 01:06:30 -04:00
Shim Myeongseob
73efef589a Fix broken links in documents (#5473)
Fix broken links in doc/epub.md, doc/getting-started.md,
doc/customizing-pandoc.md, doc/using-the-pandoc-api.md.
Also, use absolute links to pandoc.org when possible, so that
the links can be followed by people viewing these documents
on GitHub.
2019-05-01 20:09:36 -04:00
Matthew Doty
32e358bfe9 Improved sample lua tikz filter in lua-filters docs (#5445)
There are three changes:

- It only processes elements which begin with \begin{tikzpicture}
- It uses pdf2svg instead of imagemagick to preserve fidelity
- The images produced have transparent backgrounds
2019-04-15 21:39:03 -07:00
Albert Krewinkel
b11ad32605
doc/lua-filters.md: fixed typos in mediabag docs. 2019-02-16 12:12:42 +01:00
Albert Krewinkel
75c791b4fe Lua filters: load module pandoc before calling init.lua (#5287)
The file `init.lua` in pandoc's data directory is run as part of
pandoc's Lua initialization process. Previously, the `pandoc` module was
loaded in `init.lua`, and the structure for marshaling was set-up after.
This allowed simple patching of element marshaling, but made using
`init.lua` more difficult:

  - it encouraged mixing essential initialization with user-defined
    customization;

  - upstream changes to init.lua had to be merged manually;

  - accidentally breaking marshaling by removing required modules was
    possible;

Instead, all required modules are now loaded before calling `init.lua`.
The file can be used entirely for user customization. Patching
marshaling functions, while discouraged, is still possible via the
`debug` module.
2019-02-09 13:56:49 -08:00
Albert Krewinkel
9a9c138d9c
data/pandoc.lua: re-export all bundled modules
All Lua modules bundled with pandoc, i.e., `pandoc.List`,
`pandoc.mediabag`, `pandoc.utils`, and `text` are re-exported from the
`pandoc` module. They are assigned to the fields `List`, `mediabag`,
`utils`, and `text`, respectively.
2019-02-09 20:12:33 +01:00
John MacFarlane
403aafe983 Small fix in lua-filters doc. 2019-02-08 11:11:57 -08:00
Albert Krewinkel
713ed7c0c5
data/pandoc.lua: re-export List and utils module 2019-02-07 10:10:55 +01:00
Albert Krewinkel
b436087bc8
doc/lua-filters.md: fix docs for OrderedList items 2019-02-01 21:19:52 +01:00
John MacFarlane
4e6ef53295 More improvements on lua-filters docs. 2019-01-31 10:13:36 -08:00
Albert Krewinkel
7b7db934a8
doc/lua-filters.md: use 3rd level headers for module fields 2019-01-30 21:41:40 +01:00
Albert Krewinkel
4eb8a97a1c
doc/org.md: improve documentation of org features 2018-12-29 15:20:44 +01:00
Julien Kirch
cefb0886c3 Fix progit book url 2018-11-29 16:26:31 -05:00
Albert Krewinkel
c0d8b0abcb
Lua filters: test AST object equality via Haskell
Equality of Lua objects representing pandoc AST elements is tested by
unmarshalling the objects and comparing the result in Haskell. A new
function `equals` which performs this test has been added to the
`pandoc.utils` module.

Closes: #5092
2018-11-19 21:46:20 +01:00
Mauro Bieg
f07ae68558
cusomizing-pandoc.md: streamline template text 2018-11-17 14:39:26 +01:00
Mauro Bieg
0466c0a8b0
customizing-templates.md: variable options table 2018-11-17 14:23:49 +01:00
John MacFarlane
2f579193ae getting-started.md: Added title to test1.md to avoid warning. 2018-11-01 11:49:49 -07:00
Albert Krewinkel
096cbe6987 Lua: allow access to pandoc state (#5015)
* Lua: allow access to pandoc state

Lua filters and custom writers now have read-only access to most fields
of pandoc's internal state via the global variable `PANDOC_STATE`.

* Lua: allow iterating through fields of PANDOC_STATE

* Lua filters doc: describe CommonState

* Lua filters doc: mention global variable PANDOC_STATE

* Lua: add access to logs

Log messages can currently only be printed, but not decomposed.
2018-10-25 22:12:14 -07:00
Albert Krewinkel
00b0c4a57b
Lua filter doc: merge type references into main document 2018-10-19 08:14:10 +02:00
Albert Krewinkel
e3b85517d6
Lua filters doc: fix and add more links to types 2018-10-18 22:27:14 +02:00
John MacFarlane
63b3886bfe Added note to customizing-pandoc. 2018-10-16 10:42:48 -07:00
John MacFarlane
a552af612e customizing-pandoc: add suggestion about 'pandoc -t native'. 2018-10-16 09:57:10 -07:00
John MacFarlane
e32220ef4f Revised customizing-pandoc.md and included TODOs. 2018-10-16 09:54:59 -07:00
Mauro Bieg
a5fc46cb8f add docs about customizing pandoc (#4972)
closes #3288
2018-10-16 09:10:34 -07:00
Albert Krewinkel
b831bd9fc1 Lua filter docs: extend description of table fields 2018-10-16 08:01:59 +02:00
Albert Krewinkel
7e9e24b8bc Lua filter docs: describe Attr type 2018-10-15 23:01:23 +02:00
Albert Krewinkel
f6559e5def Lua filter docs: render field names as code 2018-10-15 22:52:02 +02:00
Albert Krewinkel
d9f179f7f2 Lua filter docs: fix typos 2018-10-15 22:17:12 +02:00
Albert Krewinkel
aed7aecfc3 Lua filter docs: complete, fix MetaValue documentation 2018-10-15 21:10:05 +02:00
Albert Krewinkel
1435d0b079
Lua filters doc: add ReaderOptions to list of objects 2018-10-15 07:56:35 +02:00
Albert Krewinkel
418f6e093c
Lua filter docs: add documentation for Element/Sec 2018-10-13 16:25:54 +02:00
Albert Krewinkel
1ac87b487f
Lua filter docs: document list attributes 2018-10-11 22:30:40 +02:00
Albert Krewinkel
5f6f2c69f5
data/pandoc.lua: add datatype ListAttributes
Make ListAttributes a datatype. The type is similar to Attr.
2018-10-11 22:28:24 +02:00
Albert Krewinkel
484056a4cd
Lua filter docs: document fields of Citation objects 2018-10-11 21:25:26 +02:00
Albert Krewinkel
2e63e2f2bc
Lua filter docs: document fields of inline objects 2018-10-11 20:51:54 +02:00
Albert Krewinkel
36a6a40ef7
Documentation: add draft for Lua objects reference 2018-10-06 21:48:25 +02:00
Albert Krewinkel
05efa5a0e6
Lua filter doc: fix description of Code.text 2018-10-06 21:48:24 +02:00
John MacFarlane
ba09d2942a lua-filters.md: add links to filters, and to lua-filters repository.
Closes #4874.
2018-09-07 16:29:21 -07:00
Albert Krewinkel
fb94c0f6a1 Lua Utils module: add function blocks_to_inlines (#4799)
Exposes a function converting which flattenes a list of blocks into a
list of inlines. An example use case would be the conversion of Note
elements into other inlines.
2018-07-30 10:55:25 -07:00
Alexander Krotov
41cf6d540f More spellcheck 2018-07-02 19:07:28 +03:00
HeirOfNorton
f5b89b5adb Fix example in lua-filters docs. Fixes #4459 (#4476) 2018-03-19 21:43:43 -07:00
Albert Krewinkel
b4717a6acb
doc/org.md: Add Org-mode documentation (very first draft) 2018-02-25 14:30:15 +01:00
Albert Krewinkel
eb16f3354f
doc/lua-filters.md: document global vars set for filters 2018-02-24 23:38:27 +01:00
Alexander Krotov
b818623d42 Fix Text.Pandoc.Builder link 2018-01-22 15:43:48 +03:00
Albert Krewinkel
8d5422f36b
Lua modules: add function pandoc.utils.run_json_filter
Runs a JSON filter on a Pandoc document.
2018-01-13 00:07:03 +01:00
Albert Krewinkel
b6cec3da3f
data/pandoc.lua: fix docstrings
Change: minor
2018-01-07 22:41:59 +01:00
Albert Krewinkel
7fa286fff1
Update tool which generates lua module docs
All "helper functions" are not part of the Lua code for module pandoc,
but are added in Haskell. The respective documentation section must
therefore be excluded from automatic regeneration.
2017-12-29 10:04:55 +01:00
Albert Krewinkel
9be2c7624c
data/pandoc.lua: drop function pandoc.global_filter
The function `global_filter` was used internally to get the implicitly
defined global filter. It was of little value to end-users, but caused
unnecessary code duplication in pandoc. The function has hence been
dropped. Internally, the global filter is now received by interpreting
the global table as lua filter.

This is a Lua API change.
2017-12-29 10:04:55 +01:00
Albert Krewinkel
820ee07f72
doc/lua-filters.md: re-add docs for helper functions
These docs are dropped, as the functions are no longer part of
data/pandoc.lua, from which this section is generated. This is only a
temporary fix: a proper fix will have to re-think how this section is
updated.
2017-12-29 09:04:21 +01:00
Albert Krewinkel
ec068f2318
data/pandoc.lua: fix documentation for global_filter 2017-12-29 09:02:25 +01:00
John MacFarlane
246e8f081a Update lua-filters.md and the tool that generates it. 2017-12-28 22:02:59 -08:00
John MacFarlane
346b10392f Update docs on filters. 2017-12-28 16:39:52 -08:00
John MacFarlane
ba4b9db16d Tweaks to lua-filters.md docs 2017-12-26 10:25:05 -08:00
Albert Krewinkel
59a4745457
Lua modules: add function pandoc.utils.hierarchicalize
Convert list of Pandoc blocks into (hierarchical) list of Elements.
2017-12-23 23:29:24 +01:00
Albert Krewinkel
2c66a42ab8
Lua modules: add function pandoc.utils.normalize_date
The function parses a date and converts it (if possible) to "YYYY-MM-DD"
format.
2017-12-23 13:43:22 +01:00
Albert Krewinkel
35f0567a8f
Lua modules: add function pandoc.utils.to_roman_numeral
The function allows conversion of numbers below 4000 into roman
numerals.
2017-12-23 13:42:35 +01:00
Albert Krewinkel
dd217f75e5
doc/lua-filter.md: document pandoc.utils.stringify
Change: minor
2017-12-22 20:29:00 +01:00
Albert Krewinkel
bd3ea72371
Lua modules: added pandoc.utils module
A new module `pandoc.utils` has been created. It holds utility functions
like `sha1`, which was moved from the main `pandoc` module.
2017-12-21 22:42:59 +01:00
John MacFarlane
b88cd9c2ed filters.md: say that Text.Pandoc.JSON comes form pandoc-types.
Closes jgm/pandoc-website#16.
2017-12-14 20:54:15 -08:00
Georger Araújo
ce73dec833 Delete removed -S option from command in epub.md (#4151)
Because `--smart/-S` has been removed.
Maybe ` -f markdown+smart` shoud also be added?
2017-12-13 11:28:16 -07:00
Albert Krewinkel
4066a385ac
Lua filters: use script to initialize the interpreter
The file `init.lua` is used to initialize the Lua interpreter which is
used in Lua filters. This gives users the option to require libraries
which they want to use in all of their filters, and to extend default
modules.
2017-12-06 22:50:56 +01:00
Albert Krewinkel
6640506ddc
Lua/StackInstances: push Pandoc and Meta via constructor
Pandoc and Meta elements are now pushed by calling the respective
constructor functions of the pandoc Lua module. This makes serialization
consistent with the way blocks and inlines are pushed to lua and allows
to use List methods with the `blocks` value.
2017-12-01 17:58:12 +01:00
Albert Krewinkel
5026dfaedf
lua-filters.md: add documentation for pandoc.List 2017-12-01 17:14:28 +01:00
John MacFarlane
d070424b94 lua-filters.md - added tikz filter example. 2017-11-21 12:20:28 -08:00
John MacFarlane
1c85a158f3 Added epub.md, getting-started.md to docs.
These used to live in the website repo.
2017-11-21 08:45:43 -08:00
John MacFarlane
f28f34244a Update title and authors on lua-filters.md. 2017-11-20 16:51:45 -08:00
John MacFarlane
47e74742a8 Documented text module for lua-filters.
See #4077.
2017-11-18 13:40:47 -08:00
John MacFarlane
17f6621b21 Update man page lua filter to use text module. 2017-11-18 13:33:37 -08:00
John MacFarlane
e5e8350fcb More efficient wordcount.lua example. 2017-11-12 21:55:10 -08:00
John MacFarlane
a89d4aa924 lua-filters.md: add wordcount example. 2017-11-12 21:48:47 -08:00
John MacFarlane
5c71e5afbf Improve handout example. 2017-11-12 15:51:10 -08:00
John MacFarlane
eacf1a2f00 Fixed typo in lua-filters exmaple. 2017-11-12 15:38:10 -08:00
John MacFarlane
3d6f98c4a3 lua-filters.md doc: Added handout example. 2017-11-12 15:36:11 -08:00
Alexander Krotov
af06d52609 Fix a typo: "uisng" -> "using" 2017-11-12 16:05:01 +03:00
John MacFarlane
f9c7b49502 lua-filters.md: use real-world man page filter as example. 2017-11-11 16:18:39 -08:00
John MacFarlane
6174b5bea5 Add lua filter functions to walk inline and block elements.
Refactored some code from Text.Pandoc.Lua.PandocModule
into new internal module Text.Pandoc.Lua.Filter.

Add `walk_inline` and `walk_block` in pandoc lua module.
2017-11-11 14:41:11 -08:00
Kolen Cheung
8ebf5c5f45 partially undo commit da1e626 2017-10-26 22:27:14 -07:00
Kolen Cheung
da1e626500 doc/using-the-pandoc-api.md: proofread (minor) 2017-10-26 18:16:12 -07:00
Kolen Cheung
0e47094f82 doc/filters.md: add more links to pandoc filters in diff. lang. 2017-10-26 18:08:19 -07:00
John MacFarlane
9ff04a947e Small fix to API guide. 2017-10-26 11:39:02 -07:00
John MacFarlane
4cc215391c Finshed API guide. Closes #3289. 2017-10-26 11:35:34 -07:00
John MacFarlane
456148fe7e More API documentation. 2017-10-26 10:52:44 -07:00
John MacFarlane
57277efaf5 More work on using-the-pandoc-api.md. 2017-10-26 09:19:44 -07:00
John MacFarlane
e23d293915 More work on using-the-pandoc-api.md. 2017-10-25 17:05:37 -07:00
John MacFarlane
50275957ff Small improvements in using-the-pandoc-api.md. 2017-10-24 22:49:05 -07:00
John MacFarlane
07bf48d07b More progress on using-the-pandoc-api.md. 2017-10-24 22:25:59 -07:00
John MacFarlane
8c0c4f954d Some work on using-the-pandoc-api.md. 2017-10-24 16:08:05 -07:00
Albert Krewinkel
12f8efe012
pandoc.lua: throw better error when pipe command fails
A table containing the error code, command, and command output is thrown
instead of just a string error message.
2017-10-05 11:41:59 +02:00
Albert Krewinkel
0e54d51d89
lua-filters.md: fix link to module documentation 2017-10-04 13:20:41 +02:00
John MacFarlane
d4f48e772d Added abc.lua example to lua-filters documentation.
Also fixed docs for `pipe`.
2017-10-03 14:20:48 -07:00
John MacFarlane
3e77ea4792 Lua: added 'pipe', which encapsulates Text.Pandoc.Process.pipeProcess.
This is hard to do in lua, so it's helpful to provide this.
2017-10-01 15:23:20 -07:00
John MacFarlane
4c3b3bf65a Lua: move sha1 from pandoc.mediabag to pandoc. 2017-10-01 00:33:56 -07:00
John MacFarlane
8768f7e5b0 Lua: use sha1 instead of hashname.
Better to leave control over the extension to the user.
2017-09-30 23:15:43 -07:00
John MacFarlane
9451d83058 Lua: make fetch return mime type first and then content. 2017-09-30 23:00:14 -07:00
John MacFarlane
17583cd99d Lua: simply mediabag module.
Now 'fetch' simply fetches content and mime type.
A new 'hashname' function is provided to get a filename based
on the sha1 hash of the contents and the mime type.
2017-09-30 22:54:12 -07:00
John MacFarlane
73c47a44d8 Lua: make lua.mediabag.fetch return filename and mime type.
This is necessary because you may need to insert the filename
into an image or link element.
2017-09-30 21:58:35 -07:00
John MacFarlane
9b7d652ab7 Merge pull request #3945 from tarleb/lua-mediabag
Lua mediabag module
2017-09-30 10:50:02 -04:00