ProseMirror summit in Berlin on Monday September 28

Hi Marijn,

Is there any way we can move this discussion online? I wasn’t able to attend but we’re very interested to participate and contribute. Once you have a preliminary schema outlined and can break down a plan into tasks, we can jump in and help you.

A few ideas off the top of my head:

  1. Should be pluggable by design. Think about a small set of elements (like rich text only) in the very beginning. Everything else can be added on top of later if schema is extensible and pluggable. It’s a bit similar to Markdown where you can extend it with an additional syntax.
  2. Separation of content and metadata. There will be some data associated with a document which doesn’t affect content directly. Like annotations. Or redlining. Or a custom metadata of an element. Ideally if you could associate some kind of data in a schema and get access to it in runtime it would solve many problems in future. It won’t affect content rendering and generation in any way though. If it’s our of scope, please think how you can refer to elements in schema, so we can store this metadata outside but it will still be linked to an element.

Will be happy to chat and provide more information.


Modularity is a major goal in my design of the schema system (i.e. being able to combine implementations of node types and attributes in flexible ways). For metadata, you’ll be able to either use a marked range, to have it completely outside of the document, or define a styling element (which you may or may not render) to have it inside of the document.

I will post a first sketch of the schema API on this website as soon as I have something to show, and will invite comments.

Hey, great the meeting the other day!

[EDITED: I figured this should probably go into separate threads.]

Concerning formalized tree-based document manipulation and exposing it…

You mean how to display the modification? Or you mean like merging two document trees and showing the difference? Or just in general modifying a document tree with an interface?

No, I mean the interface that the user uses to change the tree structure. I’ve found some good literature here and here.