lua-env Example
Quarto Extension
Introduction
lua-env is an extension for Quarto to provide access to LUA objects as metadata.
This extension gives you access to the quarto object and several Pandoc LUA internal objects using shortcodes.
Installation
quarto add mcanouil/quarto-lua-envThis will install the extension under the _extensions subdirectory.
If you’re using version control, you will want to check in this directory.
Usage
Add the following to your YAML header:
Old (<1.8.21):
filters: - quarto - lua-envNew (>=1.8.21):
filters: - path: lua-env at: post-quarto
This enables access to LUA objects using two shortcode formats:
/home/runner/work/quarto-lua-env/quarto-lua-env/example.qmd- Direct access via shortcode./home/runner/work/quarto-lua-env/quarto-lua-env/example.qmd- Access via metadata.
Available LUA Objects
The following LUA objects are available as metadata:
lua-env:
quarto: "quarto"
pandoc:
PANDOC_STATE: "PANDOC_STATE"
FORMAT: "FORMAT"
PANDOC_READER_OPTIONS: "PANDOC_READER_OPTIONS"
PANDOC_WRITER_OPTIONS: "PANDOC_WRITER_OPTIONS"
PANDOC_VERSION: "PANDOC_VERSION"
PANDOC_API_VERSION: "PANDOC_API_VERSION"
PANDOC_SCRIPT_FILE: "PANDOC_SCRIPT_FILE"See Pandoc LUA API - Global Variables for more information about Pandoc global variables.
Shortcodes
Quarto
{{< lua-env quarto.doc.input_file >}}/home/runner/work/quarto-lua-env/quarto-lua-env/example.qmd
{{< meta lua-env.quarto.doc.input_file >}}/home/runner/work/quarto-lua-env/quarto-lua-env/example.qmd
Pandoc
{{< lua-env pandoc.PANDOC_VERSION >}}3.6.3
{{< meta lua-env.pandoc.PANDOC_VERSION >}}3.6.3
{{< lua-env pandoc.FORMAT >}}html
{{< meta lua-env.pandoc.FORMAT >}}html
JSON Export
This document is configured to export the lua-env metadata to a JSON file.
By default, no JSON file is written (json: false). To enable JSON export, set json: true or provide a custom file path.
The YAML header includes:
extensions:
lua-env:
json: true # Export metadata to lua-env.jsonThis will create a file named lua-env.json in the same directory as this document, containing all the LUA environment metadata collected during rendering.
You can also specify a custom file path:
extensions:
lua-env:
json: "custom-output.json"