quarto-dev / quarto-dev/quarto-cli

Lightbox cell option ignored when using Jupyter engine

Ouverte
#14,432 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug engines-jupyter lightbox
Langage dominant
JavaScript
Étoiles
6k
Forks
458
Merge moyen
1 j 9 h
PR mergées (30 j)
41

Description

Bug description

When a .qmd/.ipynb document uses engine: jupyter, the lightbox.group cell option set via #| YAML comments is silently ignored (passed on to "metadata" in Jupyter notebook).
Each figure ends up in its own auto-generated gallery instead of the shared gallery specified by group.
The same option works correctly with the knitr engine.

This was reported in Discussion #14392.

Steps to reproduce

---
title: "Lightbox Example"
format:
  html:
    lightbox:
      match: auto
engine: jupyter
---

## First plot

```{python}
#| label: fig-sine
#| fig-cap: "Sine plot"
#| lightbox:
#|   group: figs

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
plt.figure()
plt.plot(x, np.sin(x))
plt.title("Sine")
plt.show()
```

## Second plot

```{python}
#| label: fig-cosine
#| fig-cap: "Cosine plot"
#| lightbox:
#|   group: figs

plt.figure()
plt.plot(x, np.cos(x))
plt.title("Cosine")
plt.show()
```

Actual behaviour

Clicking either figure opens the lightbox, but no gallery navigation arrows appear — each image is in its own isolated gallery.
The rendered <a> elements have data-gallery set to auto-generated values (quarto-lightbox-gallery-1, quarto-lightbox-gallery-2) rather than figs.

Expected behaviour

Both figures should be in the same gallery (data-gallery="figs"), so the lightbox shows navigation arrows that cycle between the two plots.

Your environment

  • OS: macOS 25.3.0

Quarto check output

Quarto 99.9.9
[✓] Checking environment information...
      Quarto cache location: /Users/mcanouil/Library/Caches/quarto
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.8.3: OK
      Dart Sass version 1.87.0: OK
      Deno version 2.4.5: OK
      Typst version 0.14.2: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 99.9.9
      commit: 2355f229b2764eae02b1f9916ac6e208d0909d02
      Path: /Users/mcanouil/Projects/quarto-dev/quarto-cli/package/dist/bin

[✓] Checking tools....................OK
      TinyTeX: v2026.02
      Chrome Headless Shell: (not installed)
      VeraPDF: (not installed)

[✓] Checking LaTeX....................OK
      Using: TinyTex
      Path: /Users/mcanouil/Library/TinyTeX/bin/universal-darwin
      Version: 2025

[✓] Checking Chrome Headless....................OK
      Using: Chrome from QUARTO_CHROMIUM
      Path: /Applications/Brave Browser.app/Contents/MacOS/Brave Browser

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

(/) Checking R installation...........ℹ R version 4.5.3 (2026-03-11)
! Config '~/.Rprofile' was loaded!
[✓] Checking R installation...........OK
      Version: 4.5.3
      Path: /Library/Frameworks/R.framework/Resources
      LibPaths:
        - /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/library
      knitr: 1.50
      rmarkdown: 2.30

[✓] Checking Knitr engine render......OK

[✓] Checking Python 3 installation....OK
      Version: 3.14.4
      Path: /Users/mcanouil/Projects/quarto-dev/quarto-cli/tests/.venv/bin/python3
      Jupyter: 5.9.1
      Kernels: quarto-brand, uv, julia-1.12, python3

[✓] Checking Jupyter engine render....OK

[✓] Checking Julia installation...

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Start by tracing how the Jupyter engine transfers #| cell options into rendered figure metadata, then compare that path with the working knitr engine. Reproduce the example and verify that both generated elements use data-gallery="figs" and show shared navigation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, jupyter, python
Domaine
frontend, web-dev
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
55/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.