Skip to content

Filter extensions can't be specified in combination with processing phases #11750

Open
@multimeric

Description

@multimeric

Bug description

The AST processing phases feature doesn't seem compatible with packaged extensions.

This works:

filters:
  - path: lifecycle.lua
    at: pre-ast

Whereas this fails:

filters:
  - path: lifecycle
    at: pre-ast

With the error ERROR (/opt/quarto/share/filters/main.lua:3832) cannot open lifecycle: No such file or directory. I assume this is supposed to work, since otherwise extensions have no access to the lifecycle hooks.

Steps to reproduce

I've made a super simple reprex of this here: https://github.com/multimeric/quarto-lifecycle:

  1. git clone https://github.com/multimeric/quarto-lifecycle
  2. cd quarto-lifecycle
  3. quarto render example.qmd.

Expected behavior

The document to render without error.

Actual behavior

ERROR (/opt/quarto/share/filters/main.lua:3832) cannot open lifecycle: No such file or directory

Your environment

Ubuntu 22.04.

Quarto check output

Quarto 1.6.39
[✓] Checking environment information...
      Quarto cache location: /home/migwell/.cache/quarto
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.4.0: OK
      Dart Sass version 1.70.0: OK
      Deno version 1.46.3: OK
      Typst version 0.11.0: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.6.39
      Path: /opt/quarto/bin

[✓] Checking tools....................OK
      TinyTeX: v2024.12
      Chromium: (not installed)

[✓] Checking LaTeX....................OK
      Using: TinyTex
      Path: /home/migwell/.TinyTeX/bin/x86_64-linux
      Version: 2024

[✓] Checking basic markdown render....OK

[✓] Checking Python 3 installation....OK
      Version: 3.12.8 (Conda)
      Path: /home/migwell/micromamba/envs/bash-kernel/bin/python
      Jupyter: 5.7.2
      Kernels: python3, bash, rust

(|) Checking Jupyter engine render....Traceback (most recent call last):
  File "/opt/quarto/share/jupyter/jupyter.py", line 21, in <module>
    from notebook import notebook_execute, RestartKernel
  File "/opt/quarto/share/jupyter/notebook.py", line 15, in <module>
    from yaml import safe_load as parse_string
ModuleNotFoundError: No module named 'yaml'
[✓] Checking Jupyter engine render....OK

Metadata

Metadata

Labels

bugSomething isn't workingextensionsrelates to Quarto extensions mechanismluaIssues related to the lua codebase, filter chain, etc

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions