Skip to content

Quarto deletes the original index.ipynb file when rendering a different notebook (index.render.ipynb) with output-file: index, despite the original file being explicitly ignored in the project configuration. #10841

@mckabue

Description

@mckabue

Bug description

Quarto unexpectedly deletes the original index.ipynb file when rendering a different notebook (index.render.ipynb) with output-file: index, despite the original file being explicitly ignored in the project configuration.

_quarto.yml

project:
  type: website
  render:
   - '*.ipynb'
   - '!index.ipynb'
website:
  title: "Test"
format:
  html: default
  pdf: default
  # When the following line is uncommented, the "index.ipynb" file is deleted upon render
  # ipynb: default

index.ipynb

{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Test - index.ipynb\"\n",
        "---\n",
        "\n",
        "## Test - index.ipynb\n",
        "\n",
        "This is a Quarto website.\n",
        "\n",
        "To learn more about Quarto websites visit <https://quarto.org/docs/websites>."
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}

index.render.ipynb

{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Test - index.render.ipynb\"\n",
        "output-file: index\n",
        "---\n",
        "\n",
        "## Test - index.render.ipynb\n",
        "\n",
        "This is a Quarto website.\n",
        "\n",
        "To learn more about Quarto websites visit <https://quarto.org/docs/websites>."
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}

Note: The bug appears to be triggered when the ipynb: default format is uncommented in _quarto.yml. When this line is commented out, the original index.ipynb is not deleted.

Steps to reproduce

  1. Create a Quarto project with the following files:

    • index.ipynb: A standard Quarto notebook
    • index.render.ipynb: A notebook with output-file: index in its YAML front matter
    • _quarto.yml: A project configuration file with !index.ipynb in the render options
  2. Ensure _quarto.yml contains:

    project:
      type: website
      render:
       - '*.ipynb'
       - '!index.ipynb'
    website:
      title: "Test"
    format:
      html: default
      pdf: default
      ipynb: default
  3. Run quarto render to build the project.

Note: The bug appears to be triggered when the ipynb: default format is uncommented in _quarto.yml. When this line is commented out, the original index.ipynb is not deleted.

Expected behavior

  • index.render.ipynb should be rendered as index.html, index.pdf and index.ipynb in the output directory.
  • The original index.ipynb should remain untouched, as it's specified to be ignored in _quarto.yml.

Actual behavior

  • index.render.ipynb is correctly rendered as index.html, index.pdf and index.ipynb in the output directory.
  • The original index.ipynb is unexpectedly deleted, despite being specified as ignored in the project configuration.

Your environment

Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.5 LTS
Release:	22.04
Codename:	jammy

Quarto check output

Quarto 1.5.57
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.2.0: OK
      Dart Sass version 1.70.0: OK
      Deno version 1.41.0: OK
      Typst version 0.11.0: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.5.57
      Path: /opt/quarto/bin

[✓] Checking tools....................OK
      TinyTeX: (external install)
      Chromium: (not installed)

[✓] Checking LaTeX....................OK
      Using: TinyTex
      Path: /home/anon-b/.TinyTeX/bin/aarch64-linux
      Version: 2024

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

[✓] Checking Python 3 installation....OK
      Version: 3.10.12
      Path: /usr/bin/python3
      Jupyter: (None)

      Jupyter is not available in this Python installation.
      Install with python3 -m pip install jupyter

[✓] Checking R installation...........(None)

      Unable to locate an installed version of R.
      Install R from https://cloud.r-project.org/

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions