pampa: plural possessive apostrophes (`Dogs' toys`) are reported as Q-2-10 and fail the render
I maintainer di solito rispondono entro 1 giorno
Una pull request collegata è già stata integrata.
- #969 di @cscheid — integrata
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 56/100
Direzione di ricerca
Start with the inline quote parser and the Q-2-10 documentation at docs/errors/markdown/Q-2-10.qmd; compare how it handles a closing quote with an apostrophe after a word. Reproduce with the provided Dogs' toys and cats' toys. input and check single, plural, and contraction cases. Done means these apostrophes render without Q-2-10 while unmatched closing quotes still report the diagnostic.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Reported by @atheriel while porting the Posit Connect documentation from Quarto 1.9.32 to q2 0.36.0. Reproduced on main at 3f7d4b0e8 (q2 0.36.0, macOS). Split out of a larger report; see #939 for the full list of siblings.
Problem
A plural possessive (Dogs' toys) is an apostrophe followed by a space. The inline parser reads it as a closing single quote, finds no opener, and reports [Q-2-10] Closed Quote Without Matching Open Quote. The document then fails to render.
Pandoc renders the same input as <p>Dogs’ toys and cats’ toys.</p>.
The Connect docs hit this about 20 times, in ordinary prose such as "users' and groups' DNs". Escaping (groups\') or typing ’ works around it, but neither should be needed for standard English.
Repro
Dogs' toys and cats' toys.
$ q2 render a.qmd --to html
Error: [Q-2-10] Closed Quote Without Matching Open Quote
╭─[ a.qmd:1:6 ]
1 │ Dogs' toys and cats' toys.
│ ┬┬
│ ╰──── No opening quote was found before this mark. If you meant an apostrophe, escape it with a backslash.
│ │
│ ╰── A space is causing a quote mark to be interpreted as a quotation close.
...
2 errors
$ echo $?
1
My results on 0.36.0 differ slightly from the original report, which said a single possessive in a paragraph passes. Here every case fails, including the single one:
| Input | Result |
|---|---|
Cats' toys. |
Q-2-10 |
Dogs' toys and cats' toys. |
Q-2-10 ×2 |
| Two possessives across a soft line break | Q-2-10 ×2 |
| Two possessives in separate paragraphs | Q-2-10 ×2 |
- Dogs' toys. / - Cats' toys. as list items |
Q-2-10 ×1 (first item only) |
It's the cats' toys. |
Q-2-10 |
Cats' at end of block |
OK |
Dogs\' toys and cats\' toys. |
OK, renders Dogs’ toys and cats’ toys. |
The list-item case reporting only the first item suggests error recovery drops the second diagnostic rather than that the second item parses; see also #230 and #232.
Expected
An apostrophe directly after a word character and followed by whitespace or punctuation, with no open single quote pending in the block, should be read as an apostrophe (right single quotation mark), as pandoc does. The Q-2-10 doc page (docs/errors/markdown/Q-2-10.qmd) already describes contractions and possessives as the most common false positive, so this is a known sharp edge, but plural possessives are too common in prose to require escaping.
Related: #221 (apostrophe after a code span trips Q-2-7).
cc @atheriel
- Lingua principale
- Rust
- Stelle
- 283
- Fork
- 20
- Merge medio
- 19h 28m
- PR unite (30g)
- 174
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di quarto-dev/q2
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
quarto-dev/q2#957 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
quarto-dev/q2#988 ·
I maintainer di solito rispondono entro 1 giorno
-
q2 mcp: can't upload a full-size screenshot because images go through the conversation as base64Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 54/100
quarto-dev/q2#987 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
quarto-dev/q2#986 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
quarto-dev/q2#985 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di quarto-dev/q2
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
compiler P4 perf
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
HerringtonDarkholme/hd-lang#1044 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue help wanted r-docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
servo/rust-smallvec#824 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
akitaonrails/ai-usagebar#552 ·
I maintainer di solito rispondono entro 1 giorno