Markdown: HTML inside code blocks and inline code isn't escaped
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 88/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- markdown, react, typescript
- Ambito
- frontend
Direzione di ricerca
Inizia da markdown.tsx e trova i renderer code e codespan; secondo l’issue, entrambi inseriscono testo senza eseguirne l’escape. Leggi i test esistenti del componente Markdown e aggiungi un caso per l’HTML nel codice delimitato da fence e nel codice inline. Il lavoro è completato quando entrambi vengono visualizzati come testo con escape, in linea con l’output atteso nell’issue.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What versions are you using? (if relevant)
[email protected] (also on canary), [email protected], [email protected]
Describe the Bug
<Markdown> doesn't escape what's inside code blocks and inline code. If a fenced block or a code span contains HTML, the tags go into the email as real HTML, so a code sample showing <b>bold</b> comes out as bold text instead of the snippet.
The code and codespan renderers in markdown.tsx insert text as is, while marked's own renderers escape it.
What is affected (leave empty if unsure)
Markdown Component
Link to the code that reproduces this issue
The repro is short, so it's inline under To Reproduce. It only needs [email protected], [email protected] and [email protected].
To Reproduce
Save this as check.mjs and run it with node:
import { createElement as h } from 'react';
import { renderToStaticMarkup } from 'react-dom/server';
import { Markdown } from 'react-email';
const md = '```html\n<b>bold</b> & <i>x</i>\n```\n\nInline: `<br>`';
console.log(renderToStaticMarkup(h(Markdown, null, md)).replace(/ style="[^"]*"/g, ''));
With the inline styles stripped, the output contains <pre><code><b>bold</b> & <i>x</i> and <p>Inline: <code><br></code></p>.
Expected Behavior
The code gets escaped, the way marked's default renderer does it: <b>bold</b> & <i>x</i> and <code><br></code>.
I'd like to send a PR for this with a test, if that's okay.
What's your node version? (if relevant)
26.7.0
- Lingua principale
- TypeScript
- Stelle
- 19.9k
- Fork
- 1.1k
- Merge medio
- 1g 15h
- PR unite (30g)
- 49
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un 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 resend/react-email
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
resend/react-email#3876 ·
I maintainer di solito rispondono entro 1 giorno
-
render: unstableTextConversion outputs HTML comments and repeats link URLs in plain textForse già presa @lakshya-dhariwal l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
resend/react-email#3864 ·
I maintainer di solito rispondono entro 1 giorno
-
<CodeInline> causes duplicated text in body previews in Gmail and other providers due to hacky Orange.fr workaroundForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
resend/react-email#3853 ·
I maintainer di solito rispondono entro 1 giorno
-
Tailwind stacked media variants leave nested CSS in rendered emailsForse già presa @lakshya-dhariwal l’ha presa oggi. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
resend/react-email#3874 ·
I maintainer di solito rispondono entro 1 giorno
-
Inspector Text panel omits Uppercase mark toggle (MARK_NAMES missing "uppercase")Forse già presa @svargas-dev l’ha presa 6 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 22/100
resend/react-email#3849 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di resend/react-email
Issue simili
-
documentation good first issue roadmap
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
siyuan-note/siyuan#21324 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
dmno-dev/varlock#1279 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
himynameisdave/bsky-profanity-counter#59 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100