Piani per supportare Markdownit Ruler per BBCode?

Il mio caso d’uso è disabilitare/abilitare le regole bbcode quando si utilizza la regola di sostituzione di bbcode.

replace: function (state, tagInfo, content) {
  const source = state.push("my_token", "div", 0);
  try {
    md.block.bbcode.ruler.disable("ruleName")
    source.children = state.md.parse(content, {});
  } finally {
    md.block.bbcode.ruler.enable("ruleName")
  }
  return true
}

Ho notato che il commento TODO qui risale a molto tempo fa, ci sono piani per implementarlo?

La mia domanda numero 1 qui è perché? quali problemi risolverebbe?

1 Mi Piace

Il nostro progetto potrebbe interessarti invece? Ci stiamo avvicinando alla fine:

Abbiamo stabilito che l’utilizzo di markdownit per qualsiasi bbcode complesso era un problema, quindi stiamo inserendo bbob in Discourse invece.

Spostare su markdownit ruler consentirà di abilitare/disabilitare le regole all’avvio di un nuovo parsing, conferisce flessibilità e un comportamento simile alle regole native di markdownit.

Ad esempio, voglio aggiungere alcune regole bbcode ma non abilitarle per impostazione predefinita, quindi abilitarle quando ne ho bisogno (come nell’esempio nell’OP). Attualmente, ciò non è possibile con il Ruler personalizzato, forse si può fare con qualche trucco (attraverso l’ambiente di parsing o modificando manualmente le regole del ruler)?

[foo]
non racchiudere all'interno della barra non dovrebbe essere tokenizzato
[/foo]

[bar]
[foo]
racchiudere all'interno della barra dovrebbe essere tokenizzato
[/foo]
[/bar]

Il motivo per cui non sto creando regole markdownit native oltre a utilizzare il bbcode è che implementare regole come il bbcode sarà difficile e di difficile manutenzione, e il bbcode è già qui.


Ottimo lavoro, ma il mio caso d’uso è diverso.

E mi piace il tuo codice qui che mi ispira su altri problemi preoccupanti.

1 Mi Piace

Come trattare tutti i bbcode come viene trattato ora [wrap]? racchiuderli in div?

Direi che quello che stai descrivendo suona più come una regola / plugin markdownit personalizzato piuttosto che qualcosa che il core deve implementare?