Block editor for wiki pages

Last modified by Anca Luca on 2023/01/25 16:06

Mentor(s)
Estimated workload

350 hours (Large size project)

Difficulty

Hard

Details

Today the content of the wiki pages platform is stored in the XWiki 2.1 syntax and can be input by the users either by using a text editor in which they type XWiki syntax or through a Wysiwyg editor based on CKEditor. When the Wysiwyg is used the content is then converted back to XWiki 2.1 syntax and stored in the database.

The Wysiwyg editor used today (CKEditor) allows to edit a whole page at once, with menus and input for the entire page at once.

The objective of this project is to create an editor for XWiki pages that would allow to edit the page as a suite of "blocks", where each block has a type, its own formatting option, and which has advanced layouting options for the blocks in the final result. Then, the result produced by this editor would still need to be transformed in XWiki 2.1 syntax and stored in the wiki pages content.

The objective is to use an existing open source front end component/library for the editor itself, not to write a new one from scratch, unless there is a clear benefit, which should be detailed in the proposal.

A solution where the block editor only supports a subset of elements compared to the current elements supported by the wiki pages is acceptable, if a path to the full implementation is possible and proposed. A subset XWiki syntax may need to be defined for this subset of elements supported by the block editor.

Resources:

XWiki Syntax - for evaluating the supported elements https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/XWikiSyntax/ .

Open source block editors:

Very basic demo of the editorjs integration: EditorJS.WebHome-working.xar: import in your wiki instance and then go to the Administration ->Editing -> Wysiwyg Editor and set "Blocks" for the default editor - headings don't work correctly because of a bug in editorjs.

Developer profile

Web developer with some knowledge of Java, that can learn easily the functioning of an existing system. Javascript for the frontend & Java for the XWiki backend will be the main languages used during this project.

Some prior experience with knowledge management principles / tools / questions, and/or the XWiki platform itself is a plus.

Active
Yes
Year

2023

Status

Proposed

Tags:
   

Get Connected