El resaltado de código impide que se muestre el valor del marcador de posición en un bloque de código

He luchado con este problema durante los últimos días antes de darme cuenta de cuál era el problema. Se informó aquí: Placeholder Forms - #48 by jericson.

El problema no parece ocurrir (¿ya no?) en el ejemplo dado en la publicación enlazada, así que haré mi propia reproducción aquí:

[wrap=placeholder key=TABLE description="table name" default="users"][/wrap]

```
SELECT * FROM =TABLE=;
```

hace:

SELECT * FROM =TABLE=;

La variable no se reconoce debido al resaltado del bloque de código, que se establece automáticamente en SQL.

El HTML de salida es:

<code class="hljs language-sql" data-highlighted="yes">
  <span class="hljs-keyword">SELECT</span>
  <span class="hljs-operator">*</span>
  <span class="hljs-keyword">FROM</span>
  <span class="hljs-operator">=</span>
  <span class="hljs-keyword">TABLE</span>
  <span class="hljs-operator">=</span>
  ;
</code>

Si especifico txt en el bloque de código, entonces el valor se muestra correctamente:

SELECT * FROM =TABLE=;

El comportamiento esperado sería que el valor se muestre independientemente del resaltado del código.

No sé por qué el bloque de código no se establece automáticamente en SQL como lo fue ayer. Hace que mi repro sea ineficaz, pero funciona en try.discourse.org, así que aquí hay una captura de pantalla:

Independientemente de la detección automática del idioma, el hecho es que algunos resaltados de idioma romperán la cadena =VALUE= y el valor no se renderizará, lo cual no es deseable.

Una solución aquí va a ser bastante complicada, si los marcadores de posición se analizan como secciones resaltadas por sintaxis, cuando vayamos a reemplazar no los encontraremos.

La forma correcta de solucionar esto es rehacer el pipeline y solo hacer el resaltado después de hacer el reemplazo.

Por ahora, diría que esto está en el departamento de solicitudes de características, no me importa poner un pr-welcome en esto en caso de que alguien pueda encontrar una manera barata y simple de solucionar esto.

1 me gusta