Ampersand escapes in text content handled differently to JSX
- Linguagem predominante
- JavaScript
- Estrelas
- 9k
- Forks
- 181
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
## Reproduction
With the following code:
```
import htm from "https://unpkg.com/htm@2.1.1/dist/htm.mjs";
import { h } from "https://unpkg.com/preact@8.4.2/dist/preact.mjs";
const html = htm.bind(h);
console.log(html`
```
I get a VNode with `.children = ["<"]` — i.e. what I mean to render as `<` gets rendered as `<` instead.
## Expected results
Testing this in JSX via say , `
I haven't poked into how they are doing this… seems like something that ultimately relies on a lookup table.
## Workaround
I am able to escape via string interpolation (e.g. `${'<'}` instead of `<`). Changing the last line in my sample code to:
```
// …
console.log(html`
```
Results in a VNode with `.children = ["<"]` as I need. Is this the recommended style?
Guia de contribuição
Direção de pesquisa
Comece pelo ponto de entrada de tagged template mostrado na reprodução: htm.bind(h) e o conteúdo de texto dentro do template. Compare como escapes literais de e comercial e strings interpoladas são tokenizados, usando a saída VNode fornecida como referência. Está concluído quando entidades de texto como \u0026lt; produzirem o texto decodificado correspondente, de forma consistente com JSX, sem quebrar a interpolação.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- javascript
- Domínio
- frontend
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 38/100