Asterisks surrounded by spaces are parsed as emphasis (`a * b * c` → `a <em> b </em> c`)
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 55/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- markdown, typescript
- Domaine
- content
Piste de recherche
Start by reproducing with renderHtml('a * b * c') from the @tanstack/markdown/html entry point. The fault is in how unescaped * delimiters are classified as left- or right-flanking when whitespace sits on both sides, so look at the inline emphasis delimiter handling in the parser that renderHtml calls. Done means both repro inputs render as literal asterisks, real italic still becomes emphasis, and escaped asterisks are unchanged.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Version: @tanstack/markdown 1.0.0 (renderHtml and the React adapter)
Repro
import { renderHtml } from '@tanstack/markdown/html'
renderHtml('5 * 4 * 3 = 60')
// actual: <p>5 <em> 4 </em> 3 = 60</p>
// expected: <p>5 * 4 * 3 = 60</p>
renderHtml('a * b * c')
// actual: <p>a <em> b </em> c</p>
// expected: <p>a * b * c</p>
Expected
Under CommonMark's delimiter-run rules, a * followed by whitespace is not left-flanking, so it can't open emphasis. A * preceded by whitespace is not right-flanking, so it can't close emphasis. Both delimiters here have whitespace on both sides, so the text should render literally.
Other parsers agree:
| Input | commonmark.js 0.31.2 | markdown-it 15.0.2 | micromark 4.0.3 | @tanstack/markdown 1.0.0 |
|---|---|---|---|---|
5 * 4 * 3 = 60 |
5 * 4 * 3 = 60 |
5 * 4 * 3 = 60 |
5 * 4 * 3 = 60 |
5 <em> 4 </em> 3 = 60 |
a * b * c |
a * b * c |
a * b * c |
a * b * c |
a <em> b </em> c |
*real italic* |
<em>real italic</em> |
<em>real italic</em> |
<em>real italic</em> |
<em>real italic</em> |
Why it matters
Arithmetic and multiplication in plain text (2 * 3, width * height) are common in user-written notes, and they silently turn into italics.
Escaped asterisks (5 \* 4 \* 3) render correctly. Only the flanking check on unescaped delimiters is affected.
- Langage dominant
- TypeScript
- Étoiles
- 432
- Forks
- 11
- Merge moyen
- 57 min
- PR mergées (30 j)
- 4
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun 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 TanStack/markdown
-
Strong ending in nested emphasis (`**bold *italic***`) closes early and leaves a literal `*`Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
-
A blockquote with U+2028 or U+2029 loops the parser foreverPeut-être pris @elwan-l1 l’a pris il y a 22 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 62/100
-
Difficulté 3/5 Une demi-journée Accessibilité débutants 70/100
Toutes les issues de TanStack/markdown
Issues similaires
-
Parallel reticle_verify opens per-flow leases without the source lease's ignoreHTTPSErrorsPeut-être pris @as992949791 l’a pris aujourd’hui. Ouvertegood first issue help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
reticlehq/reticle#2033 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
area:quality p3-medium ready-for-agent type:docs
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
fderuiter/deruiter.dev#3589 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
manfredsteyer/angular-oauth2-oidc#1514 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
marmelab/react-admin#11431 ·
Les mainteneurs répondent en général sous 1 jour