Tipi di token personalizzati di Markdown-it causano errori in RTE

Priorità/Gravità: Bassa?

Piattaforma: Dispositivi che utilizzano il nuovo RTE.

Descrizione: La creazione di tipi di token personalizzati, che in precedenza funzionavano bene solo con il motore markdown-it, causa errori con ProseMirror. Poiché senza uno schema ProseMirror per gestire il parsing in DOM, qualsiasi tipo di token personalizzato crea un errore. Allo stesso modo, ci sono problemi di comportamento quando si passa da RTE a Markdown con BBCode.

Passaggi per la riproduzione:

RTE prima:

  1. Aprire l’editor
  2. Impostare la modalità su RTE
  3. Inserire BBCode personalizzato.
    a. Ad esempio con Discourse Meta: [wrap=test2 user-id=1]Contenuto[/wrap]
  4. Chiudere l’errore e passare dalla modalità RTE a quella md.
    a. Il BBCode viene sottoposto a escape

Markdown prima:

  1. Aprire l’editor
  2. Impostare la modalità su Markdown
  3. Inserire BBCode personalizzato.
  4. Passare dalla modalità md a quella RTE.
    a. Il BBCode non è visibile
  5. Tornare indietro per vedere il codice sorgente.

Soluzione temporanea attuale:
Utilizzare solo la modalità Markdown.


Ottenere l’errore in sé non è un grosso problema, il problema più grande è il comportamento anomalo durante il passaggio o durante l’inserimento del codice.

La soluzione ideale sarebbe che ogni plugin markdown creasse un wizard/schema ProseMirror appropriato per gestirlo.

Per quanto riguarda il BBCode generico [wrap], forse è meglio lasciarlo come testo normale, poiché più componenti potrebbero utilizzare il BBCode generico nella stessa istanza di Discourse. La soluzione ideale è probabilmente consentire agli sviluppatori di creare un wizard personalizzato e adattare l’output alle proprie implementazioni, lasciando che venga ripiegato su testo normale se non vengono trovate corrispondenze.

Più in generale, con qualsiasi plugin esistente che non è stato aggiornato per utilizzare ProseMirror, consentire il fallback predefinito su testo normale (che non viene sottoposto a escape/nascosto) sarebbe un utile fallback intermedio.

2 Mi Piace

Grazie per la segnalazione, @renato sta tenendo d’occhio casi limite come questo, wrap è stato il nostro punto di riferimento per alcuni componenti del tema, lo faremo funzionare.

2 Mi Piace

Ricevo un messaggio di errore simile se aggiungo il tag Galleria [grid] in Markdown e poi riedito il mio post in modalità WYSIWYG.

Capisco che il problema è noto e su cui si sta lavorando, aggiungo solo il messaggio di errore effettivo:

Nessun parser ha elaborato il token bbcode_open per il tag: div, attrs: [["class","d-image-grid"]]

Per coloro che cercheranno questa stringa su meta dopo aver riscontrato questo problema (come ho appena fatto). :slight_smile:

1 Mi Piace

Siamo consapevoli, il problema è effettivamente in fase di elaborazione e dovrebbe essere risolto tra qualche settimana.

3 Mi Piace

L’ho riscontrato anch’io. Sono contento che ci stiano lavorando.

La griglia rende i post bellissimi invece di un orribile disastro quando gli utenti caricano più immagini nel post.