Extensión de Markdown: las funciones de ajuste en línea ya no reconocen las etiquetas BBCode con contenido vacío

Estoy usando este código en mi plugin:

helper.allowList(['span.dpg-balloon-text'])

helper.registerPlugin(md => {
  md.inline.bbcode.ruler.push('dpgb', {
    tag: 'dpgb',
    wrap: function (startToken, endToken, tagInfo) {
      startToken.tag = endToken.tag = 'span'
      startToken.content = endToken.content = ''
      startToken.type = "span_open";
      endToken.type = "span_close";
      startToken.nesting = 1;
      endToken.nesting = -1;
      startToken.attrs = [['class', 'dpg-balloon-text']].concat(
        Object.keys(tagInfo.attrs).map(key => [
          `data-dpg-${key}`,
          tagInfo.attrs[key]
        ])
      )
    }
  })
})

Lo anterior solía funcionar tanto en etiquetas BBCode vacías como no vacías. Pero hoy descubrí que ahora solo se activa cuando la etiqueta BBCode tiene contenido (como [dpgb]Algún contenido[/dpgb]) y no se activa cuando la etiqueta BBCode no tiene contenido (como [dpgb][/dpgb]). ¿Es una nueva opción de diseño?

2 Me gusta

No estoy seguro, ¿puedes revisar el código fuente para ver el commit que cambió el comportamiento?

2 Me gusta

La actualización a Markdown.it v13 rompió los BBCodes en línea vacíos. El comportamiento de la función processDelimiters cambió. Ya no actualiza el atributo end de nuestros delimitadores de BBCode cuando el BBCode no tiene contenido.

He creado una PR que restaura el comportamiento anterior y añade una prueba.

2 Me gusta