RTE: limpiar código de documento importado

Estoy moviendo actualmente contenido de Dokuwiki (dokuwiki [DokuWiki]) a Discourse. La sintaxis de Dokuwiki no es markdown limpio, por lo que necesita edición manual. Normalmente uso el editor antiguo ya que puedo ver todos los caracteres allí. Pero con el editor antiguo veo extraños “efectos de salto”: cuando marcas un bloque de texto e intentas formatearlo, el cursor salta hacia arriba y hacia abajo. Reformatear texto largo es casi imposible de esa manera, ya que siempre tienes que reposicionar tu ventana de edición. Es difícil de describir, solo podría mostrarlo con screencasts… El efecto se describió anteriormente en Cursor saltando en el cuadro de texto del compositor/editor

El editor RTE no muestra este efecto. Pero echo de menos una opción para limpiar código basura importado de otros sistemas…

1 me gusta

¿Puedes compartir cómo se ve este código basura?

1 me gusta

¿Cuánto? ¿Decenas, cientos, miles de publicaciones?

Si son más que unas pocas, probablemente tenga sentido obtener un script de importación para hacerlo. Si no son tantas, entonces probablemente aún tenga sentido obtener algo de código para arreglar el markdown en lugar de intentar editarlo a mano. (Una solución aún más descabellada sería tener un plugin que maneje las ediciones de dokuwiki).

No son tantos, pero quizás suficientes para pensar en una solución basada en scripts/programática. Lo complicado es que el código es sintaxis de dokuwiki ( wiki:syntax [DokuWiki] ) más código de interfaz de usuario mejorado de una plantilla bootstrap3 (https://getbootstrap.com). Se ve bien, pero no tuve en cuenta la migración de contenido cuando lo configuré de esta manera. El problema principal no es la sintaxis de dokuwiki, sino el código \u003cdiv\u003e … de bootstrap. Ejemplo de código:

\u003cdiv class=\"level1\"\u003e\u0026nbsp;\u003c/div\u003e \u003ch2 class=\"page-header pb-3 mb-4 mt-5\"\u003eDeterminar espacio en disco\u003c/h2\u003e \u003cdiv class=\"level2\"\u003e \u003cp\u003eFiltrar por ext4, ¿qué está disponible?\u003c/p\u003e \u003cpre class=\"code\"\u003e root@tokoeka ~ # df -h -t ext4 --total Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-root 196G 39G 148G 21% / /dev/md0 486M 400M 57M 88% /boot /dev/mapper/pve-data 3.0T 560G 2.3T 20% /mnt/data /dev/mapper/pve-backup 414G 40K 393G 1% /mnt/backup total 3.6T 598G 2.8T 18% - \u003c/pre\u003e \u003cp\u003e\u0026nbsp;\u003c/p\u003e \u003cp\u003eFiltrar por ext4, ¿qué se está utilizando?\u003c/p\u003e \u003cpre class=\"code\"\u003e root@tokoeka ~ # df -h -t ext4 --output=used Used 39G 400M 560G 40K 598G \u003c/pre\u003e \u003cp\u003e\u0026nbsp;\u003c/p\u003e \u003c/div\u003e

Sí. Eso es un desastre. Probablemente puedas pasar un poco de tiempo con nokogiri y convertirlo a markdown.

Si pegas el portapapeles con este contenido exacto de text/html en modo de editor enriquecido, obtienes un contenido que resulta en este markdown:

## Determinar el espacio en disco

Filtrar por ext4, ¿qué está disponible?

```
 root@tokoeka ~ # df -h -t ext4 --total Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-root 196G 39G 148G 21% / /dev/md0 486M 400M 57M 88% /boot /dev/mapper/pve-data 3.0T 560G 2.3T 20% /mnt/data /dev/mapper/pve-backup 414G 40K 393G 1% /mnt/backup total 3.6T 598G 2.8T 18% -
```

Filtrar por ext4, ¿qué se está utilizando?

```
 root@tokoeka ~ # df -h -t ext4 --output=used Used 39G 400M 560G 40K 598G
```

Es “lossy” (con pérdida de información) en cuanto a cosas que no nos importan (divs, classes, etc.), pero entenderá hN, pre, o cualquier cosa definida en nuestro esquema de ProseMirror, que respeta nuestras varias extensiones de editor que registran definiciones de parseDOM que son utilizadas por el analizador de ProseMirror, incluyendo las de componentes de temas o plugins.

En cuanto a la pregunta original:

Creo que cuando el editor enriquecido está cargando el documento, ya no es el mismo HTML, ¿verdad?

Porque una publicación raw que contiene bloques HTML debería renderizarse como un nodo de editor de código “passthrough”:

Esto se puede editar de la misma manera que en modo Markdown.

1 me gusta