Commit graph

156 commits

Author SHA1 Message Date
tajmone
bf7c624c80
Fix Typos in Lua Filters Doc 2020-07-09 18:48:52 +02:00
Albert Krewinkel
90ac70c79c
Org reader: unify keyword handling
Handling of export settings and other keywords (like `#+LINK`) has been
combined and unified.
2020-06-29 20:53:25 +02:00
Albert Krewinkel
1480606174
Org reader: support LATEX_HEADER_EXTRA and HTML_HEAD_EXTRA settings
These export settings are treated like their non-extra counterparts,
i.e., the values are added to the `header-includes` metadata list.
2020-06-29 17:04:29 +02:00
Albert Krewinkel
d17b257c89
Org reader: allow multiple #+SUBTITLE export settings
The values of all lines are read as inlines and collected in the
`subtitle` metadata field.
2020-06-29 17:03:33 +02:00
Albert Krewinkel
a2e0f39df8
doc/org.md: document behavior of smart extension
See discussion in #4788.

Closes: #4387
2020-06-28 21:36:38 +02:00
Albert Krewinkel
d2d5eb8a99
Org reader: read #+INSTITUTE values as text with markup
The value is stored in the `institute` metadata field and used in the
default beamer presentation template.
2020-06-28 19:25:57 +02:00
Albert Krewinkel
cd3941d34e
doc/org.md: describe all supported export options in detail 2020-06-27 10:10:16 +02:00
Albert Krewinkel
37ef57be51
lua-filters.md: use pandoc.system module in TikZ example
Showcase temporary directory handling with `with_temporary_directory`
and `with_working_directory`.
2020-05-25 09:10:26 +02:00
Levi Gruspe
e04ac2a093 Fix description of BulletList Lua type
Change description of BulletList parameter from 'List of Blocks' to 'List of List of Blocks'.
2020-04-01 13:16:41 +02:00
John MacFarlane
e23554cec1 Update filter code in doc/filters.md...
so it works with latest pandoc. Closes #6185.
2020-03-15 09:59:44 -07:00
Albert Krewinkel
6c8ed00e7b
doc/lua-filters.md: fix copy-paste mistake
Closes: #6040
2020-01-18 22:02:52 +01:00
Albert Krewinkel
672a4bdd1d Lua filters: allow filtering of element lists (#6040)
Lists of Inline and Block elements can now be filtered via `Inlines` and
`Blocks` functions, respectively. This is helpful if a filter conversion
depends on the order of elements rather than a single element.

For example, the following filter can be used to remove all spaces
before a citation:

    function isSpaceBeforeCite (spc, cite)
      return spc and spc.t == 'Space'
       and cite and cite.t == 'Cite'
    end

    function Inlines (inlines)
      for i = #inlines-1,1,-1 do
        if isSpaceBeforeCite(inlines[i], inlines[i+1]) then
          inlines:remove(i)
        end
      end
      return inlines
    end

Closes: #6038
2020-01-15 14:26:00 -08:00
John MacFarlane
ebf413cdec Update filters doc with better cabal v2 instructions. 2020-01-14 16:31:09 -08:00
John MacFarlane
dfac1239d9 Update filter documentation.
Remove example using pandoc API directly (we have other
docs for that and it was outdated).

Closes #6065.
2020-01-14 11:18:24 -08:00
Albert Krewinkel
11e99409ce
docs: capitalize Lua where it refers to the programming language name
This follows the advise on the Lua
website (https://www.lua.org/about.html#name):

> […] "Lua" is a name, the name of the Earth's moon and the name of the
> language. Like most names, it should be written in lower case with an
> initial capital, that is, "Lua".
2020-01-12 11:29:05 +01:00
Albert Krewinkel
6fd3d546a2
Lua filter docs: cross-link constructors and types
Thanks to @bpj for the idea.
2020-01-11 23:51:07 +01:00
Albert Krewinkel
4ede11a75f
Lua: add methods insert, remove, and sort to pandoc.List
The functions `table.insert`, `table.remove`, and `table.sort` are added
to pandoc.List elements.  They can be used as methods, e.g.

    local numbers = pandoc.List {2, 3, 1}
    numbers:sort()     -- numbers is now {1, 2, 3}
2020-01-11 21:31:20 +01:00
Albert Krewinkel
23d81081d0
doc/lua-filters.md: sort pandoc.List methods alphabetically 2020-01-11 21:29:47 +01:00
Albert Krewinkel
d09bcc7f16 doc/lua-filters.md: unify, fix anchors and internal links (#6061)
Links and anchors now follow consistent conventions, like lowercase-only
anchor names.

This breaks some links to specific sections in the document, but will
make it much easier to link documentation in the future.
2020-01-11 11:55:02 -08:00
Albert Krewinkel
e98921ae57
pandoc.List.lua: make pandoc.List a callable constructor
It is now possible to construct a new List via `pandoc.List()` instead of
`pandoc.List:new()`.
2020-01-11 19:38:27 +01:00
Albert Krewinkel
467ea4e02c docs/lua-filters.md: clarify filter function execution order (#6059) 2020-01-10 15:19:26 -08:00
Albert Krewinkel
2cf89ade85 doc/lua-filters.md: replace metadata example with image centering (#6004)
Metadata defaults can be given via the command line `--metadata-file`.
Adding raw format snippets is a common use case for Lua filters, so it
seems sensible to provide an example.

Thanks to @efx for proposing this filter.

Closes: pandoc/lua-filters#70
2019-12-22 16:09:30 -08:00
Mauro Bieg
abb0e35b94 lua-filters.md remove spurious dot in title (#5996) 2019-12-17 10:01:42 -08:00
Brian Wignall
a946424e3c Fix typos (#5919) 2019-11-20 09:44:23 -08:00
Albert Krewinkel
791043772b
doc/lua-filters.md: mention which Lua version is shipped with pandoc
See: #5892
2019-11-13 08:48:34 +01:00
John MacFarlane
8a2e87758e Fix metadata replacement example in lua-filters doc.
Closes #5851.

We avoid the failure with a boolean value by simply checking
to make sure we have a table before indexing.
2019-11-02 22:55:58 -07:00
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