We previously implemented a UniAst parser and renderer, XRENDERING-788, which helped us go from XWiki syntax -> XDOM -> UniAst syntax -> BlockNote syntax and back. It turns out we actually don't need the UniAst intermediary level, so it would be faster and more reliable to go directly from XWiki syntax to BlockNote. See https://forum.xwiki.org/t/use-blocknote-syntax-directly-instead-of-going-through-cristals-uniast/18336 .