pampa: plural possessive apostrophes (`Dogs' toys`) are reported as Q-2-10 and fail the render
Los mantenedores suelen responder en 1 día
Ya se ha fusionado un pull request relacionado.
- #969 de @cscheid — fusionado
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 56/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Rust
- Estrellas
- 283
- Forks
- 20
- Merge medio
- 19 h 28 min
- PR fusionados (30 d)
- 174
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de quarto-dev/q2
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
quarto-dev/q2#957 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
quarto-dev/q2#988 ·
Los mantenedores suelen responder en 1 día
-
q2 mcp: can't upload a full-size screenshot because images go through the conversation as base64Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 54/100
quarto-dev/q2#987 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
quarto-dev/q2#986 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
quarto-dev/q2#985 ·
Los mantenedores suelen responder en 1 día
Todos los issues de quarto-dev/q2
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
yunfie-twitter/Palleria#474 ·
Los mantenedores suelen responder en 1 día
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
servo/rust-smallvec#827 ·
Los mantenedores suelen responder en 1 día
-
bug tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día