Website category with a short backtick run before a longer one renders as broken code
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 83/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- typescript, yaml
- Domaine
- backend
Piste de recherche
Commencez dans src/core/pandoc/codegen.ts et lisez pandocNativeStr, qui, selon l’issue, choisit un wrapper en fonction de la première séquence de backticks. Utilisez la reproduction avec _quarto.yml et index.qmd pour confirmer la catégorie défectueuse, puis effectuez un nouveau rendu pour vérifier que les deux catégories affichent leur texte tel qu’il a été écrit. L’issue mentionne également des chemins et des URLs Reveal.js qui utilisent cette fonction ; leur comportement n’a pas été testé.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
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
A website category that holds a backtick run followed later by a longer run renders as a broken code span, with Quarto's internal markup showing on the page.
A category whose longest run comes first renders fine.
Quarto passes each category to Pandoc as inline code with the {=pandoc-native} raw attribute, so that Markdown does not touch it.
pandocNativeStr in src/core/pandoc/codegen.ts makes that wrapper one backtick longer than the first run in the text, not the longest.
A later, longer run then closes the inline code early.
The Reveal.js script paths and the Reveal.js URL go through the same function, but I have not tried those.
A roborev code review flagged this while I was working on something else, and I confirmed it with the smaller example below. (A bit of an edge case)
Steps to reproduce
_quarto.yml:
project:
type: website
index.qmd:
---
title: "Categories with backticks"
categories:
- "a`b``c"
- "x``y`z"
---
Text.
Then run quarto render.
Actual behavior
The first category is broken, and the second one is correct:
<div class="quarto-category"><code>Str "a`b</code>c”``{=pandoc-native}</div>
<div class="quarto-category">x``y`z</div>
Expected behavior
Both categories show their text as written:
<div class="quarto-category">a`b``c</div>
<div class="quarto-category">x``y`z</div>
Your environment
- IDE: none, command line.
- OS: macOS 27.0.
Quarto check output
Reproduced with a development build of main at b9df97903.
Quarto 99.9.9
[✓] Checking environment information...
Quarto cache location: /Users/mcanouil/Library/Caches/quarto
Project: none found (single-file mode)
[✓] Checking versions of quarto binary dependencies...
Pandoc version 3.10.0: OK
Dart Sass version 1.101.0: OK
Deno version 2.7.14: OK
Typst version 0.15.1: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
Version: 99.9.9
commit: b9df97903771dcd2135117da49a055122686156d
Path: /Users/mcanouil/Projects/quarto-dev/quarto-cli/package/dist/bin
[✓] Checking tools....................OK
TinyTeX: v2026.07
Chrome Headless Shell: (not installed)
VeraPDF: (not installed)
[✓] Checking LaTeX....................OK
Using: TinyTex
Path: /Users/mcanouil/Library/TinyTeX/bin/universal-darwin
Version: 2026
[✓] Checking Chrome Headless....................OK
Using: Chrome from QUARTO_CHROMIUM
Path: /Applications/Brave Browser.app/Contents/MacOS/Brave Browser
[✓] Checking basic markdown render....OK
ℹ R version 4.6.1 (2026-06-24)
! Config '~/.Rprofile' was loaded!
[✓] Checking R installation...........OK
Version: 4.6.1
Path: /Library/Frameworks/R.framework/Versions/4.6/Resources
LibPaths:
- /Users/mcanouil/Library/R/arm64/4.6/library
- /Library/Frameworks/R.framework/Versions/4.6/Resources/library
knitr: 1.51
rmarkdown: 2.31
[✓] Checking Knitr engine render......OK
[✓] Checking Python 3 installation....OK
Version: 3.14.7
Path: /Users/mcanouil/Projects/quarto-dev/quarto-cli/tests/.venv/bin/python3
Jupyter: 5.9.1
Kernels: julia-1.12, python3
[IPKernelApp] WARNING | Kernel is running over TCP without encryption. All communication (including code and outputs) is sent in plain text and is susceptible to eavesdropping. Use IPC transport or launch with kernel manager-provisioned CurveZMQ keys to enable transport encryption.
[✓] Checking Jupyter engine render....OK
[✓] Checking Julia installation...
- Langage dominant
- JavaScript
- Étoiles
- 6.1k
- Forks
- 471
- Merge moyen
- 17 h 35 min
- PR mergées (30 j)
- 107
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de quarto-dev/quarto-cli
-
accessibility bug html websites
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
quarto-dev/quarto-cli#15187 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement themes websites
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
quarto-dev/quarto-cli#15179 ·
Les mainteneurs répondent en général sous 1 jour
-
about-page bug layout websites
Difficulté 1/5 1-3 heures Accessibilité débutants 82/100
quarto-dev/quarto-cli#15178 ·
Les mainteneurs répondent en général sous 1 jour
-
bug websites
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
quarto-dev/quarto-cli#15176 ·
Les mainteneurs répondent en général sous 1 jour
-
a11y: prev/next page links and title breadcrumbs use `$text-muted` and fail contrast on dark themesOuverteaccessibility bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
quarto-dev/quarto-cli#15175 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de quarto-dev/quarto-cli
Issues similaires
-
bug Frontend P2-medium UI UX
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
Deepak3699/Ai_Mentor#427 ·
Les mainteneurs répondent en général sous 1 jour
-
needs-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
11ty/buildawesome#4407 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
keyxmakerx/Chronicle#1711 ·
Les mainteneurs répondent en général sous 1 jour
-
frontend
Difficulté 2/5 1-3 heures Accessibilité débutants 69/100
uoftblueprint/canada-basketball#79 ·
Les mainteneurs répondent en général sous 1 jour
-
New App Request
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
ThatGuySam/doesitarm#1126 · 1 commentaire ·