RTE: pulizia del codice del documento importato

Sto spostando alcuni contenuti da Dokuwiki (dokuwiki [DokuWiki]) a Discourse. La sintassi di Dokuwiki non è markdown pulito, pertanto necessita di modifiche manuali. Normalmente uso il vecchio editor perché posso vedere tutti i caratteri lì. Ma con il vecchio editor vedo strani “effetti di salto”: quando si seleziona un blocco di testo e si tenta di formattarlo, il cursore salta su e giù. La riformattazione di testi più lunghi è quasi impossibile in quel modo, poiché è sempre necessario riposizionare la finestra di modifica. È difficile da descrivere, potrei mostrarlo solo con screencast… L’effetto è stato descritto in precedenza in Il cursore salta nell’editor / casella di testo del composer

L’editor RTE non mostra questo effetto. Ma mi manca un’opzione per ripulire il codice spazzatura importato da altri sistemi…

1 Mi Piace

Puoi condividere come appare questo codice spazzatura?

1 Mi Piace

Quanti? Decine, centinaia, migliaia di post?

Se sono più di alcuni, probabilmente ha senso creare uno script di importazione per farlo. Se non sono così tanti, allora avrebbe comunque senso creare del codice per correggere il markdown piuttosto che cercare di modificarlo manualmente. (Una soluzione ancora più stravagante sarebbe quella di avere un plugin che gestisca le modifiche di Dokuwiki).

Non sono così tanti, ma forse abbastanza da pensare a una soluzione basata su script/programmatica. La cosa complicata è che il codice è sintassi dokuwiki ( wiki:syntax [DokuWiki] ) più codice UI avanzato da un template bootstrap3 (https://getbootstrap.com). Ha un bell’aspetto ma non ho pensato alla migrazione dei contenuti quando l’ho impostato in questo modo. Il problema principale non è la sintassi dokuwiki, ma il codice bootstrap \u003cdiv\u003e … stuff. Esempio di codice:

<div class="level1">&nbsp;</div> <h2 class="page-header pb-3 mb-4 mt-5">Plattenplatz ermitteln</h2> <div class="level2"> <p>Filtern auf ext4, was ist verfügbar?</p> <pre class="code"> 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% - </pre> <p>&nbsp;</p> <p>Filtern auf ext4, was wird genutzt?</p> <pre class="code"> root@tokoeka ~ # df -h -t ext4 --output=used Used 39G 400M 560G 40K 598G </pre> <p>&nbsp;</p> </div>

Sì. È un casino. Probabilmente puoi dedicare un po’ di tempo a nokogiri e trasformarlo in markdown.

Se incolli un appunti con questo esatto contenuto text/html in modalità editor avanzato, ottieni un contenuto che risulta in questo markdown:

## Determinare lo spazio su disco
 
Filtra per ext4, cosa è disponibile?
 
```
 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% - 
```
 
 
Filtra per ext4, cosa viene utilizzato?
 
```
 root@tokoeka ~ # df -h -t ext4 --output=used Used 39G 400M 560G 40K 598G 
```

È con perdita di informazioni per quanto riguarda le cose di cui non ci occupiamo (div, class, ecc.), ma comprenderà hN, pre, o qualsiasi cosa definita nel nostro schema ProseMirror, che rispetta le nostre varie estensioni dell’editor che registrano definizioni parseDOM utilizzate dal parser di ProseMirror, comprese quelle dei componenti del tema o dei plugin.

Per quanto riguarda la domanda originale:

Penso che quando l’editor avanzato sta caricando il documento, non sia più questo stesso HTML, vero?

Perché un post raw contenente blocchi HTML dovrebbe essere renderizzato come un nodo editor di codice “pass-through”:

Questo può quindi essere modificato nello stesso modo in cui poteva essere fatto in modalità Markdown.

1 Mi Piace