Website category with a short backtick run before a longer one renders as broken code
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 83/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript, yaml
- Lĩnh vực
- backend
Hướng nghiên cứu
Bắt đầu trong src/core/pandoc/codegen.ts và đọc pandocNativeStr, mà theo issue sẽ chọn một wrapper dựa trên chuỗi dấu backtick đầu tiên. Dùng trường hợp tái hiện với _quarto.yml và index.qmd để xác nhận danh mục bị lỗi, sau đó render lại để kiểm tra xem cả hai danh mục có hiển thị văn bản đúng như đã viết hay không. Issue cũng đề cập đến các đường dẫn và URL của Reveal.js sử dụng hàm này; hành vi của chúng chưa được kiểm thử.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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...
- Ngôn ngữ chính
- JavaScript
- Star
- 6.1k
- Fork
- 471
- Merge trung bình
- 22 giờ 12 phút
- Pull request đã merge (30 ngày)
- 103
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của quarto-dev/quarto-cli
-
accessibility bug website-navigation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
quarto-dev/quarto-cli#15123 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
accessibility html websites
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
quarto-dev/quarto-cli#15096 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
accessibility bootstrap dark-mode enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
quarto-dev/quarto-cli#15060 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Code annotation gutter keeps a grey background when code blocks have none (`code-block-bg: false`)Đang mởbug code-annotation code-blocks themes
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
quarto-dev/quarto-cli#15059 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug callouts code-blocks themes
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
quarto-dev/quarto-cli#15058 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của quarto-dev/quarto-cli
Issue tương tự
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
ericcornelissen/depreman#591 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
NanmiCoder/dsh-agent-teams#269 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
전문가 노하우 케이스 형식에 재검토 시점을 필수로 둔다Đang mởdocs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
idean3885/claude-ops-agent#765 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs html v6
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày