silexlabs / grapesjs-symbols

Symbols plugin for GrapesJS: reuse elements in a website accross pages

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Status, roadmap...

BentoumiTech opened this issue · comments

An amazing plugin that you are working on!

I was playing with Symbols on grapes and saw your project, I like the approach you took to implement it.

Do there is any code I can contribute to help you get the plugin ready?

Hello
I just saw your PR, thank you, that's a good surprise :)
Sure I would love some help, I will share my todo list here then
You need symbols for a project of yours?
I need this plugin for the next version of silex.me
Have a great day

Yes, I need symbols for a project I'm working on.

My end goal is to be able that whenever a symbol style/attributes/selection changes all the other instances of that symbol get updated.

Looking forward to seeing your todo list :)

Great :)

Here is my todo

  • Backbone models for Symbols and Symbol
  • Commands to create/delete symbol instances
  • Mechanism to store the updated component's json in order to create new components out of the symbol
  • Mechanism to track components inside Symbol instances and to apply a change to all occurrences of a component
  • Sync attributes
  • Sync css classes / selectors
  • Sync children
  • Sync nested children
  • Sync styles
  • Handle symbols in symbols
  • Handle move a child from a symbol directly to another symbol
  • Support pages
  • Prevent dropping a symbol into itself (tip on how to prevent drop and here too)
  • Prevent dropping from the stage a symbol child into the same symbol (or handle it as a move)
  • Prevent dropping from the symbols pane a symbol child into the same symbol (or handle it as a move)
  • Prevent make a symbol when it is a symbol already
  • Support for making a component a symbol when the component is in a symbol (add symbol id to all instances)
  • #4 (opionion wanted)
  • Tag name support
  • Undo redo support
  • Rename symbol
  • Add a trait for all symbols instances: unlink/pause sync

Bugs

  • when you delete something that is not in other instances it deltes everything
  • #6 (help wanted)
  • drop a quote in a symbol, then drag it to an other instance of the same symbol => the whole instance disappears
  • drop a "link block" component in a symbol changes its properties for: display: inline-block; min-height: 50px; padding: 5px;
  • change text inside a symbol then undo will undo the change only in the instance you changed

It would be great to collaborate - eventually I'll transfer this repo to the Silex Labs org (the foundation which holds silex copyright)

Have a nice day !

Thank you for sharing your to-do list, it helps a lot.

I already started to look at those three, I'll try to open a PR this week

  • Sync attributes
  • Sync styles
  • Sync CSS classes / selectors

👍

hey @BentoumiTech i'm back on the subject
it seems all broken, i hope you didn't struggle with my non working code

I'm also interested on the idea of this project but I'm not able to get it to work to test it, any clue/help ?
I can get npm to install/start but I'm getting this message on console:

grapesjs@latest:2 Plugin grapesjs-sympbols not found Object
y @ grapesjs@latest:2
log.js:24 [HMR] Waiting for update signal from WDS...
lit-html.js:49 Lit is in dev mode. Not recommended for production! See https://lit.dev/msg/dev-mode for more information.
issueWarning @ lit-html.js:49
index.js:551 [webpack-dev-server] Hot Module Replacement enabled.
index.js:551 [webpack-dev-server] Live Reloading enabled.
DevTools failed to load source map: Could not load content for webpack://grapesjs-sympbols/node_modules/underscore/underscore-umd.js.map: Fetch through target failed: Unsupported URL scheme; Fallback: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
DevTools failed to load source map: Could not load content for webpack://grapesjs-sympbols/node_modules/lit-html/development/lit-html.js.map: Fetch through target failed: Unsupported URL scheme; Fallback: HTTP error: status code 404, net::ERR_UNKNOWN_URL_SCHEME
DevTools failed to load source map: Could not load content for https://unpkg.com/grapes.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

Thank you for reply !
The main error message is that this one Plugin grapesjs-sympbols not found it doesn't register the grapesjs-symbols plugin.

I did a hand made unification of this project an removed the need for lit-html but then I've got another problem where is the #symbols (appendTo: '#symbols') located ?

Do we need to create an empty div/element with that id ?

Any way thank you for your great work !

Yes, for now i bundled a UI which you need to tell where to go, with the appendTo option

The ui needs lithtml though
You can leave it it was just a warning
Please understand that it will not work yet, but you are welcome to try, please open a new issue then

FYI: I updated the "roadmap" with my progress, take a look at the demo to see how it is working so far
https://codepen.io/lexoyo/pen/gOjYweZ

Updated the "road map" here

The demo should be up to date