Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Asterisks surrounded by spaces are parsed as emphasis (`a * b * c` → `a <em> b </em> c`)

Ouverte
#28 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de TanStack/markdown

Toutes les issues de TanStack/markdown

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.