Plans de prise en charge de Markdownit Ruler pour BBCode ?

Mon cas d’utilisation est de désactiver/activer les règles bbcode lors de l’utilisation de la règle de remplacement de 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
}

J’ai remarqué que le commentaire TODO ici date d’il y a longtemps, y a-t-il des projets pour l’implémenter ?

Ma première question ici est pourquoi ? Quels problèmes cela résoudrait-il ?

1 « J'aime »

Notre projet vous intéresserait-il plutôt ? Nous approchons de la fin :

Nous avons déterminé que l’utilisation de markdownit pour tout bbcode complexe était une corvée, nous intégrons donc bbob dans Discourse à la place.

Passer à markdownit ruler permettra d’activer/désactiver des règles lors du démarrage d’un nouveau parse, cela apporte de la flexibilité et un comportement similaire aux règles natives de markdownit.

Par exemple, je veux pousser certaines règles bbcode mais ne pas les activer par défaut, puis les activer quand j’en ai besoin (comme l’exemple dans l’OP). Actuellement, ce n’est pas possible avec le Ruler personnalisé, peut-être que cela peut être fait avec une astuce (via l’environnement de parse ou en modifiant manuellement les règles du ruler) ?

[foo]
ne pas envelopper à l'intérieur de la barre ne devrait pas être tokenisé
[/foo]

[bar]
[foo]
envelopper à l'intérieur de la barre devrait être tokenisé
[/foo]
[/bar]

La raison pour laquelle je ne crée pas de règles markdownit natives autres que l’utilisation du bbcode est que la mise en œuvre de règles comme le bbcode sera difficile et difficile à maintenir, et le bbcode est déjà là.


Excellent travail, mais mon cas d’utilisation est différent.

Et j’aime votre code ici qui m’inspire sur les autres problèmes préoccupants.

1 « J'aime »

Comme si tout le bbcode était traité comme [wrap] est traité maintenant ? les envelopper dans des divs ?

Je dirais que ce que vous décrivez ressemble davantage à une règle / un plugin markdownit personnalisé qu’à quelque chose que le cœur doit implémenter ?