Holistic Overview

As a brand new, ok potential, user of prosemirror I am struggling to get a holistic overview of how the various components (Nodes, marks, nodeviews, decorations, transactions, selections,…) work together to form the ‘editor’.

Is there a site, git, or other resource that provides a somewhat high level walk through?

In my case my specific goal is to replace a third party email editor that has changed their licensing scheme such that it is no longer affordable for my client. Prosemirror seems to be a good solution but I am struggling with getting started.

The guide sounds like the closest thing to this that we have.

That is a good document, and I’m bit ashamed to say that I hadn’t stumbled across while googling/spleunking.

Overall my goal is to create a fairly simple block editor for a client that can’t afford a sas editors new licensing scheme. My first thought/guess is to create a simple custom schema with a block element for each of the main elements required for the email templates (images, paragraphs, input field and buttons, columns,…) and allow each block node to contain the requisite inline nodes. Seems simple enough…Does it seem reasonable to you?

I’ve noticed a number of threads about flex (basically don’t use flex on text nodes…). Is it ok to use flex on divs? Related: If it is ok, do I need to specify the flex in that attrs for the node, if not is the rule that all attributes are serialized?

Last annoying newbish question(ok not last but the last one that I am comfortable pestering you with :smiley: ) Is it possible to detect which node a user has clicked on and based on that node show a seperate Ux element to allow styling of the node?

If they contain other blocks, sure. If they have inline content, it’ll screw up the editor (and line wrapping, and a bunch of other things around inline rendering).

Yes. You can either show an element like that based on the current selection position (maybe using node selections), or track the last clicked node using handleClickOn.

@marijn Thanks for your time and knowledge sharing.
If/when I run into issues I’ll start a new more focused thread.