This issue has been created
There are 2 updates.
 
 
XWiki Rendering / cid:jira-generated-image-avatar-95624e4b-7d8d-473a-8512-d7616e811226 XRENDERING-788 Open

Implement a parser and a renderer for the UniAst JSON syntax used by BlockNote editor

 
View issue   ยท   Add comment
 

Issue created

 
cid:jira-generated-image-avatar-e808f2e8-2d0c-4cb8-a2fe-0907ab761942 Marius Dumitru Florea created this issue on 23/May/25 09:34
 
Summary: Implement a parser and a renderer for the UniAst JSON syntax used by BlockNote editor
Issue Type: cid:jira-generated-image-avatar-95624e4b-7d8d-473a-8512-d7616e811226 New Feature
Affects Versions: 17.3.0
Assignee: Unassigned
Components: Syntax
Created: 23/May/25 09:34
Priority: cid:jira-generated-image-static-major-299ced0d-5460-4c69-a950-4332efaca7c6 Major
Reporter: Marius Dumitru Florea
Description:

We're integrating the BlockNote WYSIWYG editor in XWiki by reusing its integration in Cristal. Unlike other WYSIWYG editors, BlockNote doesn't use HTML as input / output syntax. It uses its own custom syntax to represent the editable blocks of content. The Cristal project has integrated BlockNote and implemented a more generic UniAst syntax (that gets converted to / from the BlockNote's own syntax).

In my current implementation for XWIKI-23025 I'm using Markdown as input / output for the editor, because:

  • XWiki has an extension that adds support for the Markdown syntax to the XWiki rendering (server-side)
  • Cristal provides utilities to convert between Markdown and UniAst (client-side)

But this means my code needs to:

  • depend on the Markdown extension, server-side
  • bundle the Markdown utility code in the generated client-side code

It would be faster, simpler and with fewer chances of losing stuff in translation if we introduce a parser / renderer server-side for the UniAst syntax, i.e. to go directly from UniAst to XDOM instead of going through Markdown.

 
 

2 updates

 
cid:jira-generated-image-avatar-e808f2e8-2d0c-4cb8-a2fe-0907ab761942 Changes by Marius Dumitru Florea on 23/May/25 09:34
 
Fix Version: 17.5.0-rc-1
Assignee: Marius Dumitru Florea