• Stars
    star
    2,004
  • Rank 23,109 (Top 0.5 %)
  • Language
    JavaScript
  • Created about 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Just another Medium wysiwyg editor clone

Dante 3 - This is it! 🔥

Rollup Build

Just another medium clone built on top of ProseMirror's / TipTap

Dante3 is a port from Dante2 (Draftjs) . This version is built on top of TipTap and reaches all Dante2's features with a shiny ultra mega super uber maintainable architecture.

Screen.Cast.2021-05-29.at.4.51.36.PM.mp4

See the demo at: dante-editor.dev

Why rewrite a new version of Dante?

The previous version (Dante2) was made on DraftJs, that's a facebook library to build WYSIWYG editor, I'd choose that technology because it implemented a very interesting data model and abstracted many parts of the heuristics implementation that Dante1 (the previous version) built as a naive implementation relying a lot on DOM manipulation, So Dante2 was great and is working on a ton of production websites. Sadly over the last years this library has not received much attention from maintainers. Among the ~700 unattended reported issues there are some that have become a deal breaker for me:

  • Bad mobile support.

  • ~1MB added to your bundle (immutablejs is heavy)

  • Not created for realtime collab.

My bet, TipTap

After shopping many editors libraries, I mean after tried to implement Dante on almost all of them (Trix, Editorjs, Quilljs, Slate, Prosemirror) I've TipTap library (which is based on Prosemirror)., I guess all editors libraries have their own flaws but after review it all TipTap is the best of it's class, very well designed/architectured, and I love the community around their ecosystem. So that's it.

Features:

  • Configurable and extensible extensions / plugins / components

  • Undo/redo.

  • Save Content as a data JSON/HTML structure.

  • Load Content as a data JSON/HTML structure.

  • Styled components Theme support (built in light/dark themes).

Block based content:

Dante editor can be extended with (React) components to, currently there are default components to be used as is:

  • Image upload for paste html.

  • Video embed.

  • Video Recorder.

  • Embed.

  • Divider.

  • Speech.

  • Giphy.

Installation

npm install dante3 or yarn add dante3

Usage

Component Based

<DanteEditor
  content={'hello world'}
/>

Options:

Many configuration options and plugin usage can be found on the documentation page:

See dante-editor.dev

Development

Installation

  • git clone https://github.com/michelson/dante

dependencies

  • npm install or yarn install

Building

  • npm dante3_build or yarn dante3_build

dev install:

  • lerna bootstrap

  • yarn dev

Status

Dante3 is on beta, actively maintained, with all the features that Dante2 has. As is relying on TipTap (which is based on Prosemirror) which has a better browser support and mobile support. Also has realtime collab capabilities.

Monorepo

This repository now contains prior Dante versions, located in the packages folder. so Dante1*, Dante2 and Dante3 lives in the same repo.

  • Dante(1) is not maintained anymore.

Open source license

Dante is licensed under MIT, so you are free to do whatever you want. If you are using it commercially, become one of our wonderful sponsors to fund the maintenance, support and development of Dante now and in the future.

💓 Your sponsorship

Your sponsorship helps to maintain, update, support and develop all of our open source projects, including tiptap and many more.

Acknowledgments

Prosemirror library & Tiptap authors

Workspaces

we use npm workspaces to manage the monorepo, for instance to install a dependence in some package, use:

npm install --workspace=Dante2

npm install some-dep --workspace=Dante2

build

  • npm run dante3:build
  • npm run dante2:build

deploy

  • npm run dante3:publish
  • npm run dante2:publish

npm install rollup-plugin-auto-external --save-dev --workspace=dante3

npm run dante3:build

More Repositories

1

lazy_high_charts

Make highcharts a la ruby , works in rails 5.X / 4.X / 3.X, and other ruby web frameworks
Ruby
1,048
star
2

dante2

A complete rewrite of dante editor in draft-js
JavaScript
910
star
3

espinita

Audit activerecord models like a boss (and works with rails 4!)
Ruby
220
star
4

chaskiq-newsletters

Newsletter Rails engine
Ruby
127
star
5

BigBroda

GoogleBig Query ActiveRecord Adapter & API client
Ruby
110
star
6

rails-ui

A collection of components based on Ruby ViewComponent & Stimulus, heavily inspired by shadcn/ui
HTML
27
star
7

lazy_google_analytics

google analytics api client for the lazy
Ruby
22
star
8

autocontext

An Elixir Ecto utility library that provides ActiveRecord-like callbacks, simplifying the management of database operations. This includes before_save, after_save, create, update, and delete functions.
Elixir
12
star
9

detached-carrot

A port of SimplifiedStarling plugin for push-pop active_record tasks with RabbitMQ
Ruby
11
star
10

acts_as_uploaded

a simple rails plugin for upload_nginx module and amazon s3 service, inspired in attachment_fu, (work in progress but in production in artenlinea.com)
Ruby
8
star
11

osc-puredata-ruby

JavaScript
5
star
12

dante2-tests

dante tests using es6 modules
JavaScript
3
star
13

apidone-client

api done client made in ruby (coding) dojo
Ruby
3
star
14

ws-celluloid

JavaScript
3
star
15

discobolo

ruby worker system for disque
Ruby
3
star
16

needish-gem

this gem provides basic methods to access needish.com api, profile, friends, needs and helps
Ruby
3
star
17

faye-tests

Ruby
2
star
18

go_4_live

Go and ableton live OSC experiment
Go
2
star
19

componium-beat

a set of gui abstractions for PD
Pure Data
2
star
20

sinatra-oa-consumer

sinatra-oauth-consumer
1
star
21

LoadTester

This is a simple package to benchmark http requests, This especially shows you how many requests per second a http server is capable of serving.
Go
1
star
22

code-test

Ruby
1
star
23

mongo_mail_store

Rails plugin to catch outcoming emails and store it in MongoDB
Ruby
1
star
24

nginx-chef

clone of nginx-chef v 2.7.5
Ruby
1
star