🛠 Trumbowyg 3 (WIP) • Open Discussion • Feedback are welcome
See original GitHub issueTrumbowyg 3
Hey, I’m Alex-D, aka Alexandre Demode. I’m a French Web Developer who has created Trumbowyg in 2012. I left my job to devote myself to Trumbowyg and freelance.
If you can and want to support me, feel free to donate me recurring via GitHub Sponsor or via Patreon or one-time via PayPal.
Why?
First, Trumbowyg is old and based on jQuery. Nobody wants that anymore.
To remove jQuery, I need to rewrite a lot of code in core and plugins. As long as I need to rewrite a lot of code, I want to rewrite all the code and try a new structure for better modularity, flexibility, and extensibility.
Goals
- Vanilla JS
- Get rid of
execCommand
- ~20ko for the core (8-10ko gzip)
- API driven
- Split Core and UI (see below)
- Unit tests for the Core
- Better Documentation
- Explicit calls (no more wizardry)
- TypeScript description file
- Official support of Vue.js, React and Angular
Details by module
Core
- Abstract Syntax Tree: allow to split editor content from output format (semantic HTML, non-semantic HTML, custom HTML, Markdown, …)
- History, Ctrl+Z 📚
- Clipboard, for pasting things from anywhere without explosion 💥
- Keyboard, for shortcuts ⌨
- Mobile support
- CJK IME (composition) support
- Better API
- Simplified Selection manipulation
UI
- Button Pane (relative, fixed, floating)
- dropdown
- button
- Modals
- input (text, file, checkbox, radio)
- select
- confirm
- cancel
- Themes
- Default
- Dark
- Maybe more, like a Material one
Why am I posting that here?
I want to get feedback as soon as possible in the development process.
So if you guys have some links to share which can help me, or some ideas you want to see in Trumbowyg, let me know by commenting this issue 😃
How to help me?
Send me new ideas to question my plans and improve some parts. And as I said in the introduction, you can donate me recurring via Patreon or one-time via PayPal to help me to invest more time in this project.
Thank you
From 2012, you are more and more to use Trumbowyg, which was started as a challenge/joke on IRC. But today it’s a project with more than 2500 stars, 600 issues, 250 pull requests, 850+ commits from 130+ contributors from almost everywhere in the world: that’s crazy! Internet’s magic.
Follow the development
A new branch is here, more like a draft/proof of concept for now: https://github.com/Alex-D/Trumbowyg/tree/v3
😃
Issue Analytics
- State:
- Created 5 years ago
- Reactions:53
- Comments:48 (17 by maintainers)
Top GitHub Comments
Removing jQuery is not as hard as getting rid of
execCommand
/contenteditable
browser-specific issues.And yep I plan to support Angular, React and Vue officially.
Hey, here is some news!
Current Status: Research & Development
I’m in an R&D phase, and after a really long time of research, I’ve worked with the Snabbdom virtual DOM library in a small side-projectWIP to see if it can fit the Trumbowyg v3 needs.
The conclusion of this test is that it can work very well 🥳
Snabbdom provides a light way to do DOM<->VNode transforms. I need to check how to abstract the render to get custom things in the Trumbowyg view mode (image resize handles, visual Markdown guides, etc.)
And I need to check how can I work with the user selection while editing the text via Snabbdom.
I’m also thinking about allowing to avoid Snabbdom when using a framework which gives an
h(tagName, attrs, children)
via an abstraction layer, but I’m still not sure about that for now. It seems hard with Angular, I can’t find anyh
-like render method.Hope the news looks good for you 😃