Commit graph

130 commits

Author SHA1 Message Date
Marcus Stollsteimer
57e2148ca2 Fix capitalization of "Linux" in docs (#5859) 2019-10-28 10:45:36 -07:00
Albert Krewinkel
88409f9afa
doc/lua-filters.md: fix mistakes in mediabag module docs
See: #5851
2019-10-27 23:09:20 +01:00
Albert Krewinkel
d0261d7387 Lua filters: allow passing of HTML-like tables instead of Attr (#5750)
Attr values can now be given as normal Lua tables; this can be used as a
convenient alternative to define Attr values, instead of constructing
values with `pandoc.Attr`. Identifiers are taken from the *id* field,
classes must be given as space separated words in the *class* field. All
remaining fields are included as misc attributes.

With this change, the following lines now create equal elements:

    pandoc.Span('test', {id = 'test', class = 'a b', check = 1})
    pandoc.Span('test', pandoc.Attr('test', {'a','b'}, {check = 1}))

This also works when using the *attr* setter:

    local span = pandoc.Span 'text'
    span.attr = {id = 'test', class = 'a b', check = 1}

Furthermore, the *attributes* field of AST elements can now be a plain
key-value table even when using the `attributes` accessor:

    local span = pandoc.Span 'test'
    span.attributes = {check = 1}   -- works as expected now

Closes: #5744
2019-09-15 12:11:58 -07:00
John MacFarlane
9f984ff26a Replace Element and makeHierarchical with makeSections.
Text.Pandoc.Shared:

+ Remove `Element` type [API change]
+ Remove `makeHierarchicalize` [API change]
+ Add `makeSections` [API change]
+ Export `deLink` [API change]

Now that we have Divs, we can use them to represent the structure
of sections, and we don't need a special Element type.
`makeSections` reorganizes a block list, adding Divs with
class `section` around sections, and adding numbering
if needed.

This change also fixes some longstanding issues recognizing
section structure when the document contains Divs.
Closes #3057, see also #997.

All writers have been changed to use `makeSections`.
Note that in the process we have reverted the change
c1d058aeb1
made in response to #5168, which I'm not completely
sure was a good idea.

Lua modules have also been adjusted accordingly.
Existing lua filters that use `hierarchicalize` will
need to be rewritten to use `make_sections`.
2019-09-08 22:20:19 -07:00
John MacFarlane
b6490de03b lua-filters - avoid duplicate id element-components. 2019-08-08 11:29:36 -07:00
John MacFarlane
01ad9399b9 Update lua-filters doc from lua sources. 2019-08-08 11:21:31 -07:00
John MacFarlane
808602ed8a Fix links to Attr in lua-filters.doc. 2019-08-08 11:14:43 -07:00
John MacFarlane
21c9548960 lua-filters.doc: make table narrower so it doesn't crowd out TOC. 2019-08-08 11:02:23 -07:00
Albert Krewinkel
11bb862767 Lua: add a clone() method to all AST elements (#5572)
Closes: #5568
2019-06-12 09:58:38 -07:00
John MacFarlane
62f8422b8c Fix typo in lua documentation.
Closes #5552.
2019-06-05 14:48:48 -07:00
Albert Krewinkel
9f43b2ef1a
doc/lua-filters.md: fix typos in pandoc.mediabag docs 2019-05-30 20:03:23 +02:00
Albert Krewinkel
5a82ecaaa1
pandoc.mediabag module: add function delete
Function `pandoc.mediabag.delete` allows to remove a single item of the given
name from the media bag.
2019-05-29 23:18:44 +02:00
Albert Krewinkel
0a6a11cfab
pandoc.mediabag module: add function empty
Function `pandoc.mediabag.empty` was added. It allows to clean-out the media
bag, removing all entries.
2019-05-29 23:18:44 +02:00
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