juphyter

Quarto rendering

Verification

Scope

Tables, plots, figure captions, cell options, state across cells, multibyte text, tracebacks, and syntax highlighting in HTML; kernel metadata and outputs in ipynb; plot figures in PDF through Typst; kernel reuse under the Quarto daemon.

References

Versions
PHP 8.5.10, Python 3.14.7, ipykernel 7.4.0, jupyter_client 8.10.0, Quarto 1.10.18, vl-convert vl-convert 1.9.0, phibble 0.5.3, phplyr 0.4.6, phiz 0.5.2

Data

report.qmd
tables, a plot, cell options, and an error Source
kernelspec.qmd
explicit kernelspec front matter Source

Method

pytest renders the fixture documents with Quarto 1.10.18 through a kernel registered from the tested commit and inspects the HTML, ipynb, and PDF output.

Check
End-to-end run with the external program
Note
PDF figure check: run, passed.
Recorded
2026-11-01, PHP 8.5.10, macOS 27.0.1 (arm64), commit 46349a3

Tolerances

exact equality

Applies to: Rendered content

HTML, ipynb, and PDF

x: package value; r: reference value.

Results

26 comparisons: 26 pass, 0 fail, 0 skipped.

Every comparison
Case Quantity Status
the kernelspec was written by juphyter into a temporary directory Rendered output pass
the notebook sits below the project it finds its packages in Rendered output pass
html renders the phibble frame as a table Rendered output pass
html renders the phplyr summary as a table Rendered output pass
html draws the plot from the vega lite specification Rendered output pass
html keeps the figure caption beside the plot Rendered output pass
html honors echo false Rendered output pass
html carries state from one cell to the next Rendered output pass
html keeps a multibyte string intact Rendered output pass
html shows the traceback with cell frames Rendered output pass
html shows both values a cell displayed Rendered output pass
php cells are syntax highlighted Rendered output pass
ipynb records the kernel and the php that ran the cells Rendered output pass
ipynb carries the plot the stream output and the plain text Rendered output pass
ipynb holds one representation per output rather than all four Rendered output pass
ipynb loses an html table the way any kernels table is lost Rendered output pass
ipynb drops the error output of a failing cell Rendered output pass
the kernel publishes four representations of a plot Rendered output pass
the run says whether vl convert was found Rendered output pass
pdf renders the plot as a figure from the static svg Rendered output pass
a second render reuses the daemonized kernel Rendered output pass
the second render produces the same document Rendered output pass
the daemon leaves no engine or watchdog behind Rendered output pass
a kept alive kernel survives a long idle period Rendered output pass
the process listing carries a long command line whole Rendered output pass
the explicit kernelspec front matter needs the spec directory Rendered output pass

Limitations

Known differences

  • quarto render --to ipynb drops HTML tables and error outputs, for any kernel.

Reproduction

From the repository root
python -m pip install -r tests/Quarto/requirements.txt
composer install
JUPHYTER_QUARTO_IDLE=180 python -m pytest tests/Quarto -v
Raw record
site/verifications/quarto-render.json
Full results
tests/Quarto/test_render.py
Input data
tests/Quarto/fixture