question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

🛠 Trumbowyg 3 (WIP) • Open Discussion • Feedback are welcome

See original GitHub issue

Trumbowyg 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:closed
  • Created 5 years ago
  • Reactions:53
  • Comments:48 (17 by maintainers)

github_iconTop GitHub Comments

9reactions
Alex-Dcommented, Nov 5, 2019

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.

7reactions
Alex-Dcommented, Jul 20, 2020

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 any h-like render method.

Hope the news looks good for you 😃

Read more comments on GitHub >

github_iconTop Results From Across the Web

Trumbowyg 3 (WIP) • Open Discussion • Feedback are welcome
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...
Read more >
Issues · Alex-D/Trumbowyg · GitHub
... Issues Plan and track work Discussions Collaborate outside code Explore All features. ... 🛠 Trumbowyg 3 (WIP) • Open Discussion • Feedback...
Read more >
awesome-stars | ⭐ My own GitHub stars
A curated list of my GitHub stars! Generated by starred. Contents. Arduino; AsciiDoc; Astro; Batchfile; C; C#; C++; CSS; Clojure; CoffeeScript; Cython ...
Read more >
ECMAScript 6 Tools Awesome - DirDev.com
Acorn - A small, fast, JavaScript-based JavaScript parser with ES6 support, parses to SpiderMonkey AST format. esparse - ES6 parser written in ES6....
Read more >
关掉idea打字冒火花功能 - CSDN
使用Vue.js,Vuex,Vuetify和Firebase的SPA应用程序(第3部分)(2018年11月) ... Winsome Trivia-一种单人或多人琐事游戏,具有由Vue.js构建并由Open Trivia数据库 ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found