quarto-dev / quarto-dev/quarto-cli

File in subdirectory not found

Open
#11,360 9 comments 0 reactions 1 assignee View on GitHub

@cscheid is already working on this.

Since Nov 11, 2024.

backport bug inspect
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

Bug description

I recently updated to quarto version 1.5.57 from 1.5.35. After updating, quarto inspect is no longer able to find a document file in a subdirectory. Ironically, quarto render works fine. I could bisect that this problem appeard between v1.5.51 and v1.5.57. I assume this commit is the culprit.

Please see this MR as a reference where the issue appeared first.

Steps to reproduce

Create these files:

Main file:

---
title: main
format:
  html:
    default
---

{{< include "subdir/text2.qmd" >}}

Text 2 (in ./subdir/):

# Second File

Some text here.

{{< include "subdir/b/text3.qmd" >}}

Text 3 (in ./subdir/b/):

# Third File

Some text here.

Now, run quarto inspect.

Expected behavior

quarto inspect outputs the desired information.

Actual behavior

quarto inspect fails with the following message:

ERROR: NotFound: No such file or directory (os error 2): readfile '/home/***/tmp/tarche-test/subdir/subdir/b/text3.qmd'
Path: /home/***/tmp/tarche-test/subdir/subdir/b/text3.qmd

Stack trace:
Path: /home/***/tmp/tarche-test/subdir/subdir/b/text3.qmd
    at readTextFileSync (ext:deno_fs/30_fs.js:859:10)
    at Object.Deno.readTextFileSync (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:5047:25)
    at mappedStringFromFile (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:19592:24)
    at Object.markdownForFile (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:40863:32)
    at mdForFile (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:40283:29)
    at inner (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:40322:67)
    at inner (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:40322:23)
    at async projectResolveCodeCellsForFile (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:40342:5)
    at async inspectConfig (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:101478:13)
    at async Command.actionHandler (file:///tmp/.mount_quartodxyAMD/usr/bin/quarto.js:101515:20)

quarto render runs fine. Even after removing the subdir in the include of text3.qmd, the command fails.

Your environment
  • OS: Linux
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: /tmp/.mount_quartoWCrNeu/usr/bin

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

[✓] Checking LaTeX....................OK
      Using: Installation From Path
      Path: /usr/bin
      Version: 2023

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

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

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

[✓] Checking R installation...........OK
      Version: 4.4.1
      Path: /usr/lib64/R
      LibPaths:
        - /home/***/.local/share/R/R.library
        - /usr/lib64/R/library
        - /usr/share/R/library
      knitr: 1.48
      rmarkdown: 2.26

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

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.