Skip to content

Document editor structure protections #304

@pepoospina

Description

@pepoospina

Add protections to document editor on drop to prevent document inconsistencies.

Assume the editor is a tree that is rendered as a list, so rendering visually flattens the tree. The style of a block is linked to the tree structure and some conditions must be met.

condition 1)
Paragraphs are wrapped by titles.

condition 2)
At any given level, all paragraphs must be the first children, followed by all titles.

All paragraphs "under" a title must be its children until the next title of that level. (here "under" refers to the visually flattened view). In other words, the lower syblings of a title cannot be a paragraph.

For example, this is a valid doc structure

P0
T1
  P2
  P2
T2
  P4

But this is not valid

P0
T1
  P1 
  P2
P3
P4

This is not valid because P2 and P3 are in different levels of the tree, but visually they look like syblings.

--

These conditions are forced while editing the document, but they are not forced when droping new content.

A Protection must be included so that if a title is dropped above a paragraph, it is moved under the last paragraph at that level.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions