RTE : nettoyage du code des documents importés

Je déplace actuellement du contenu de Dokuwiki (dokuwiki [DokuWiki]) vers Discourse. La syntaxe Dokuwiki n’est pas du markdown propre, elle nécessite donc une édition manuelle. J’utilise normalement l’ancien éditeur car je peux y voir tous les caractères. Mais avec l’ancien éditeur, je vois des « effets de saut » étranges : lorsque vous sélectionnez un bloc de texte et essayez de le formater, le curseur monte et descend. Le reformatage de textes plus longs est presque impossible de cette façon, car vous devez toujours repositionner votre fenêtre d’édition. C’est difficile à décrire, je ne pourrais le montrer qu’avec des screencasts… L’effet a été décrit précédemment dans Le curseur saute dans la boîte de texte du compositeur/éditeur

L’éditeur RTE ne présente pas cet effet. Mais il me manque une option pour nettoyer le code inutile importé d’autres systèmes…

1 « J'aime »

Pouvez-vous partager à quoi ressemble ce code inutile ?

1 « J'aime »

Combien ? Des dizaines, des centaines, des milliers de messages ?

S’il y en a plus que quelques-uns, il est probablement judicieux d’utiliser un script d’importation. S’il n’y en a pas tant que ça, il serait probablement toujours judicieux d’avoir un code pour corriger le markdown plutôt que d’essayer de le modifier manuellement. (Une solution encore plus farfelue serait d’avoir un plugin pour gérer les éditions Dokuwiki).

Ce n’est pas tant que ça, mais peut-être assez pour réfléchir à une solution basée sur des scripts/programmatique. La chose délicate est que le code est de la syntaxe dokuwiki ( wiki:syntax [DokuWiki] ) plus du code d’interface utilisateur amélioré d’un modèle bootstrap3 (https://getbootstrap.com). Ça a l’air bien, mais je n’avais pas pensé à la migration de contenu quand je l’ai configuré de cette façon. Le problème principal n’est pas la syntaxe dokuwiki, mais le truc \u003cdiv\u003e … de bootstrap. Exemple de code :

\u003cdiv class=\"level1\"\u003e\u0026nbsp;\u003c/div\u003e \u003ch2 class=\"page-header pb-3 mb-4 mt-5\"\u003eDéterminer l'espace disque\u003c/h2\u003e \u003cdiv class=\"level2\"\u003e \u003cp\u003eFiltrer sur ext4, qu'est-ce qui 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\u003eFiltrer sur ext4, qu'est-ce qui est utilisé ?\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

Ouais. C’est un désordre. Vous pouvez probablement passer un peu de temps avec nokogiri et le convertir en markdown.

Si vous collez un presse-papiers avec ce contenu exact text/html en mode éditeur riche, vous obtenez un contenu résultant dans ce markdown :

## Déterminer l'espace disque
 
Filtrer sur ext4, qu'est-ce qui 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% - 
```
 
 
Filtrer sur ext4, qu'est-ce qui est utilisé ?
 
```
 root@tokoeka ~ # df -h -t ext4 --output=used Used 39G 400M 560G 40K 598G 
```

C’est une perte concernant les éléments qui ne nous intéressent pas (divs, classes, etc.), mais cela comprendra hN, pre, ou tout ce qui est défini dans notre schéma ProseMirror, qui respecte nos diverses extensions d’éditeur enregistrant les définitions parseDOM utilisées par l’analyseur de ProseMirror, y compris celles des composants de thème ou des plugins.

Quant à la question originale :

Je pense que lorsque l’éditeur riche charge le document, ce n’est plus le même HTML, n’est-ce pas ?

Parce qu’un post raw contenant des blocs HTML devrait être rendu comme un nœud d’éditeur de code “pass-through” :

Cela peut ensuite être édité de la même manière qu’en mode Markdown.

1 « J'aime »