Snap! Module System

(https://snap.berkeley.edu/snap/snap.html#present:Username=18001767679&ProjectName=Snap!%20Module%20System)
@bh @jens

Better. I don't quite get

serializeToString(
    JXON.unbuild(
        JXON.build(...)))

and the big long one that's called first thing in all your blocks is still headache-inducing, for me anyway. And it's still full of single-letter variable names. This is Snap!! You can have multiple word variable names!

But you misquoted the new XMLSerializer part.
I'm just getting the things in the blocks.block-definition.
Using Css selectors:
snapdata project blocks{
color:red;
}

Oh,I'll change it.
Now,there it is——cleaner.

https://developer.mozilla.org/en-US/docs/Archive/JXON
It is a little modified (1dm)
hello?

There is still much to be done.
You made functions to merge blocks from other projects from the cloud, at runtime.
But how do You want to use imported blocks? They must be already present in the editor to create scripts with those blocks.
Also, projects created with "modules" will have all custom blocks already within. So this way there is no modularity just persistent, single-shot #include.
To get something close to modularity there must be a way to export/save only blocks not belonging to any already loaded modules and load them as the last module in the project.

oh.

hey dardoro helicopter has got an solution wooo!:partying_face:

Fine, so it only left to invent kind of module headers to allow using blocks as blocks :wink:
Snap! Module System script pic
And of course, "unimport" to prevent modules functions from saving with the project as it defies the whole module concept.