Si selecciono texto en una sola línea y aplico un envoltorio mediante el botón del editor, se aplica un envoltorio en línea. Esto funciona, aunque la última letra del texto seleccionado queda parcialmente recortada:
![]()
Esta es una forma de crear envoltorios en línea, y se convertirá automáticamente en un envoltorio de bloque si no hay otro contenido escrito en la misma línea.
La otra es <span data-attribute> y no está soportada en el editor enriquecido (data-attribute se elimina), aunque está completamente soportada en el editor Markdown. Curiosamente, esta sintaxis permitida no figura en discourse/frontend/pretty-text/addon/allow-lister.js at 3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd · discourse/discourse · GitHub, sino en discourse/frontend/discourse-markdown-it/src/features/d-wrap.js at 3b13aaa003332e7bf056a6cbb2c0da0cf107a0fd · discourse/discourse · GitHub ![]()
<span data-attribute> está documentado en meta y probablemente se usa en la práctica fuera de mi foro. Tiene la ventaja de nunca convertirse en un elemento de bloque, incluso si no hay otro contenido en la misma línea.
Un envoltorio regular solo en una línea como este:
[wrap="fish"]texto[/wrap]
Se renderiza como un bloque:
<div class="d-wrap" data-wrap="fish">
<p>texto</p>
</div>
Las únicas formas, que yo sepa, de evitar este comportamiento son:
-
Usar
<span data-attribute>:<span data-fish>texto</span>se renderiza como:
<span data-fish="">texto</span> -
Agregar un espacio no recortado (idealmente de ancho cero) como
​al principio o al final de la línea.​[wrap=fish]Pescadito[/wrap]se renderiza como:
​<span class="d-wrap" data-wrap="fish">Pescadito</span>
Esta última es un poco truculenta.
Preferiría poder usar la primera solución en el editor enriquecido. En general, cualquier forma sencilla de crear un envoltorio en línea sería útil.