Markdown-Erweiterung: Inline-Wrap-Funktionen erkennen BBCode-Tags mit leerem Inhalt nicht mehr

Ich verwende diesen Code in meinem 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]
        ])
      )
    }
  })
})

Das oben hat früher sowohl bei leeren als auch bei nicht leeren BBCode-Tags funktioniert. Aber ich habe heute festgestellt, dass es jetzt nur noch ausgelöst wird, wenn der BBCode-Tag Inhalt hat (wie z.B. [dpgb]Einige Inhalte[/dpgb]) und nicht ausgelöst wird, wenn der BBCode-Tag keinen Inhalt hat (wie z.B. [dpgb][/dpgb]). Ist das eine neue Designentscheidung?

2 „Gefällt mir“

Ich bin mir nicht sicher, können Sie den Quellcode durchsuchen, um den Commit zu finden, der die Verhaltensänderung vorgenommen hat?

2 „Gefällt mir“

Das Upgrade auf Markdown.it v13 hat leere Inline-BBCodes beschädigt. Das Verhalten der Funktion processDelimiters hat sich geändert. Sie aktualisiert das end-Attribut unserer BBCode-Begrenzer nicht mehr, wenn der BBCode keinen Inhalt hat.

Ich habe einen PR erstellt, der das vorherige Verhalten wiederherstellt und einen Test hinzufügt.

2 „Gefällt mir“