quarto-dev / quarto-dev/quarto-cli
project.render glob fails to match .qmd files in underscore-prefixed directories
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 6k
- Forks
- 458
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 41
Description
I have:
- searched the issue tracker for similar issues
- installed the latest version of Quarto CLI
- formatted my issue following the Bug Reports guide
Bug description
Make this clearer. How about
I ran into an issue setting the project files when my qmd documents are within a folder with an underscore prefix. For context, I am building a website with Jekyll, where underscore prefixes are required for certain behavior. I am building tutorials for my website using qmd, placing all of my tutorials under a folder called _tutorials.
The issue is that when setting my global config, _quarto.yml, If I set the project files using blog like
project:
type: default
render:
- "_tutorials/**/*.qmd"
format:
... my format here...
None of my formatting options would be carried over into the rendered html. This is possibly because the quarto documents paths include _tutorials/..., which has an underscore prefix, which quarto ignores by default.
However I was able to get around this block by changing my project specification to the full dir rather than a glob search
project:
type: default
render:
- "_tutorials"
format:
... my format here...
This passed all formatting through to my documents with no issue.
To me, specifying _tutorials and _tutorials/**/*.qmd should have equivalent behavior. I am surprised one works when the other doesnt. Also I would expect that a glob path would be more stable, since you specify exactly what files to include.
Expected behavior:
"_tutorials" and "_tutorials/**/*.qmd" should be equivalent in this case (both target the same .qmd files). I’d expect the glob form to work reliably, especially since it explicitly selects renderable files.
Steps to reproduce
Create _quarto.yml config, and place quarto document inside _example
project:
type: default
render:
- "_example/**/*.qmd"
format:
... some formatting ...
Actual behavior
If the project render files specify the folder vs specify the glob search you get different behavior.
Expected behavior
Expected behavior:
"_tutorials" and "_tutorials/**/*.qmd" should be equivalent in this case (both target the same .qmd files). I’d expect the glob form to work reliably, especially since it explicitly selects renderable files.
Your environment
OS: macOS 26.3 (build 25D125)
Kernel/Arch: Darwin 25.3.0, arm64 (Apple Silicon)
Quarto: 1.9.36
Python: 3.13.6
Ruby: 2.6.10p210
Bundler: 2.4.22
Jekyll CLI: not currently available in this shell (jekyll not found / bundle exec jekyll not installed yet)
Quarto check output
jbryaniv@Js-MacBook-Air-4 jsbryaniv.github.io % quarto che
ck
Quarto 1.9.36
[✓] Checking environment information...
Quarto cache location: /Users/jbryaniv/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: 1.9.36
Path: /Applications/quarto/bin
(|) Checking tools...........(/) Checking tools...........(-) Checking tools...........
[✓] Checking tools....................OK
TinyTeX: (not installed)
Chromium: (not installed)
Chrome Headless Shell: (not installed)
VeraPDF: (not installed)
(|) Checking LaTeX...........(/) Checking LaTeX...........(-) Checking LaTeX...........() Checking LaTeX...........(|) Checking LaTeX...........(/) Checking LaTeX...........(-) Checking LaTeX...........() Checking LaTeX...........(|) Checking LaTeX...........(/) Checking LaTeX...........
[✓] Checking LaTeX....................OK
Using: Installation From Path
Path: /Library/TeX/texbin
Version: 2025
[✓] Checking Chrome Headless....................OK
Using: Chrome found on system
Path: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Source: MacOS known location
(|) Checking basic markdown r(/) Checking basic markdown r(-) Checking basic markdown r() Checking basic markdown r(|) Checking basic markdown r(/) Checking basic markdown r
[✓] Checking basic markdown render....OK
[✓] Checking R installation...........(None)
Unable to locate an installed version of R.
Install R from https://cloud.r-project.org/
[✓] Checking Python 3 installation....OK
Version: 3.13.6
Path: /Library/Frameworks/Python.framework/Versions/3.13/bin/python3
Jupyter: 5.9.1
Kernels: project-env, python3
(|) Checking Jupyter engine r(/) Checking Jupyter engine r(-) Checking Jupyter engine r() Checking Jupyter engine r(|) Checking Jupyter engine r(/) Checking Jupyter engine r(-) Checking Jupyter engine r() Checking Jupyter engine r(|) Checking Jupyter engine r(/) Checking Jupyter engine r(-) Checking Jupyter engine r() Checking Jupyter engine r(|) Checking Jupyter engine r(/) Checking Jupyter engine r(-) Checking Jupyter engine r() Checking Jupyter engine r(|) Checking Jupyter engine r(/) Checking Jupyter engine r(-) Checking Jupyter engine r() Checking Jupyter engine r(|) Checking Jupyter engine r
[✓] Checking Jupyter engine render....OK
(|) Checking Julia installati(/) Checking Julia installati(-) Checking Julia installati() Checking Julia installati(|) Checking Julia installati(/) Checking Julia installati(-) Checking Julia installati() Checking Julia installati(|) Checking Julia installati(/) Checking Julia installati(-) Checking Julia installati() Checking Julia installati(|) Checking Julia installati(/) Checking Julia installati(-) Checking Julia installati() Checking Julia installati(|) Checking Julia installati(/) Checking Julia installati(-) Checking Julia installati() Checking Julia installati(|) Checking Julia installati(/) Checking Julia installati(-) Checking Julia installati() Checking Julia installati(|) Checking Julia installati(/) Checking Julia installati(-) Checking Julia installati() Checking Julia installati(|) Checking Julia installati
[✓] Checking Julia installation...
jbryaniv@Js-MacBook-Air-4 jsbryaniv.github.io %
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue using the _quarto.yml project configuration and a .qmd file under _example or _tutorials. Compare rendering with the directory path and the **/*.qmd glob, then trace the project render-file handling. Done means both forms select the same documents and apply the configured formatting consistently.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 54/100