Executes any Lua command in a lua XML processing instruction and includes the result in the document.
Example:
The number <?lua return 1 + 2 + 3 + 4 + 5?> is the fifth triangular number.This yields
The number 15 is the fifth triangular number.
The value that’s returned by the Lua code is spliced back into the document. The = character can be used as a shorthand for return when placed at the beginning of an expression.
1 + 2 = <?lua =1 + 2 ?>Result:
1 + 2 = 3
The filter tries to detect when the return has been omitted and inserts it automatically in that case. Therefore, the above can be shortened to
1 + 2 = <?lua 1 + 2 ?>1 + 2 = 3
Raw attributes syntax with format run-lua or runlua can be used as an alternative to the processing-instructions-based syntax.
For example,
𝜋 ≈ `math.pi`{=run-lua} 𝜏 ≈ `2 * math.pi`{=runlua}yields
𝜋 ≈ 3.1415926535898
𝜏 ≈ 6.2831853071796
Note that pandoc isn’t an XML processor, and the processing instruction is terminated by a single >. Use the “raw attribute” syntax if your code contains that character:
```{=runlua} return 1 > 0 and 'all is well' ``` The filter modifies the internal document representation; it can be used with many publishing systems that are based on pandoc.
Pass the filter to pandoc via the --lua-filter (or -L) command line option.
pandoc --lua-filter run-lua.lua ... Users of Quarto can install this filter as an extension with
quarto install extension pandoc-ext/run-lua and use it by adding run-lua to the filters entry in their YAML header.
--- filters: - run-lua ---Use pandoc_args to invoke the filter. See the R Markdown Cookbook for details.
--- output: word_document: pandoc_args: ['--lua-filter=run-lua.lua'] ---This pandoc Lua filter is published under the MIT license, see file LICENSE for details.