¿Planes para soportar Markdownit Ruler para BBCode?

Mi caso de uso es deshabilitar/habilitar reglas de bbcode al usar la regla de reemplazo 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
}

Noté que el comentario TODO aquí era de hace mucho tiempo, ¿hay planes para implementarlo?

Supongo que mi pregunta número 1 aquí es ¿por qué? ¿qué problemas resolvería esto?

1 me gusta

¿Le interesaría nuestro proyecto en su lugar? Estamos cada vez más cerca del final:

Determinamos que usar markdownit para cualquier bbcode complejo era un problema, así que estamos insertando bbob en Discourse en su lugar.

Mover a markdownit ruler permitirá habilitar/deshabilitar reglas al iniciar un nuevo análisis, lo que proporciona flexibilidad y un comportamiento similar al de las reglas nativas de markdownit.

Por ejemplo, quiero agregar algunas reglas de bbcode pero no habilitarlas por defecto, luego habilitarlas cuando las necesite (como en el ejemplo del OP). Actualmente, esto no es posible con el Ruler personalizado, ¿quizás se pueda hacer con algún truco (a través del entorno de análisis o modificando las reglas del ruler manualmente)?

[foo]
no envolver dentro de la barra no debería tokenizar
[/foo]

[bar]
[foo]
envolver dentro de la barra debería tokenizar
[/foo]
[/bar]

La razón por la que no estoy creando reglas nativas de markdownit además de usar bbcode es que implementar reglas como bbcode será difícil y de mantener, y bbcode ya está aquí.


Gran trabajo, pero mi caso de uso es algo diferente.

Y me gusta tu código aquí, que me inspira en los otros problemas de preocupación.

1 me gusta

¿Como tratar todo el bbcode como se trata ahora [wrap]? ¿envolverlos en divs?

Yo diría que lo que describes suena más a una regla/plugin personalizado de markdownit en lugar de algo que el núcleo necesite implementar.