Giter Site home page Giter Site logo

muzijun99 / plate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from udecode/plate

0.0 0.0 0.0 17.55 MB

A plugin framework for building rich text editors with slate.

Home Page: https://plate.udecode.io

License: Other

TypeScript 72.35% JavaScript 1.36% Shell 0.01% CSS 0.02% HTML 26.26%

plate's Introduction

Plate

PRs Welcome Tested with Jest
Powered by Vercel

Visit plate.udecode.io for docs, guides, API and more!

Hiring

Plate consulting:

Looking to hire:

DM @zbeyens to get added to the list if your offer includes Plate contribution.

Introduction

Slate is a low-level editor framework that helps you deal with difficult parts when building an editor, such as events handlers, elements, formatting, commands, rendering, serializing, normalizing, etc.

While you are trying to build your own editors, it still needs a lot of skills to make something similar to Quill or ProseMirror. This repository allows you to build your editor right away with minimal slate knowledge.

@udecode/plate is built on top of slate to handle plugins and state management for an optimal development experience. This repository comes with a lot of plugins as elements, marks, serializers, normalizers, queries, transforms, components and so on.

  • 🏎 Simple Start

You only need one component to get started: <Plate>

  • 🐻 State Management

zustand store is internally used to support multiple editor states.

  • πŸ’… Design System

The API is design system friendly. We provide a default design system for quick start but you can plug-in your own one using a single function.

  • πŸ”Œ 40+ Packages

We enforce separation of concerns by packaging each feature for build optimization and versioning.

  • πŸ›  Extensible

All plugins accept extensible options and if you need to fork a plugin, all its functions are exported.

Documentation

To find out more see the following Plate documentation sections:

The documentation is far from being complete and will be constantly evolving (as will the packages).

Contributing and project organization

Ideas and discussions

Discussions is the best place for bringing opinions and contributions. Letting us know if we're going in the right or wrong direction is great feedback and will be much appreciated!

Development

Plate is a modular, multi-package, monorepo project. It consists of a core package that creates the plugin system, based on which the plugin packages are implemented.

See the contributing guide to learn how to contribute your code to the project.

Packages

Core libraries

Name Version Description
@udecode/plate-common @udecode/plate-common npm package badge Common queries, transforms and utilities.
@udecode/plate-core @udecode/plate-core npm package badge Core plate architecture.

Element Plugins

Name Version Description
@udecode/plate-basic-elements @udecode/plate-basic-elements npm package badge Basic elements plugins.
@udecode/plate-alignment @udecode/plate-alignment npm package badge Text alignment plugin.
@udecode/plate-ui-alignment @udecode/plate-ui-alignment npm package badge Text alignment UI.
@udecode/plate-block-quote @udecode/plate-block-quote npm package badge Block quote plugin.
@udecode/plate-ui-block-quote @udecode/plate-ui-block-quote npm package badge Block quote UI.
@udecode/plate-code-block @udecode/plate-code-block npm package badge Code block plugin.
@udecode/plate-ui-code-block @udecode/plate-ui-code-block npm package badge Code block UI.
@udecode/plate-excalidraw @udecode/plate-excalidraw npm package badge Excalidraw plugin.
@udecode/plate-heading @udecode/plate-heading npm package badge Headings (1-6) plugin.
@udecode/plate-image @udecode/plate-image npm package badge Image plugin. Supports pasting images from clipboard.
@udecode/plate-ui-image @udecode/plate-ui-image npm package badge Image UI.
@udecode/plate-link @udecode/plate-link npm package badge Link plugin.
@udecode/plate-ui-link @udecode/plate-ui-link npm package badge Link UI.
@udecode/plate-list @udecode/plate-list npm package badge Bulleted, numbered and to-do list plugins.
@udecode/plate-ui-list @udecode/plate-ui-list npm package badge List UI.
@udecode/plate-media-embed @udecode/plate-media-embed npm package badge Media embed plugin.
@udecode/plate-ui-media-embed @udecode/plate-ui-media-embed npm package badge Media embed UI.
@udecode/plate-mention @udecode/plate-mention npm package badge Mention plugin (autocomplete @mentions, #tags, etc.).
@udecode/plate-ui-mention @udecode/plate-ui-mention npm package badge Mention UI.
@udecode/plate-paragraph @udecode/plate-paragraph npm package badge Paragraph plugin.
@udecode/plate-table @udecode/plate-table npm package badge Table plugin.
@udecode/plate-ui-table @udecode/plate-ui-table npm package badge Table UI.

Mark Plugins

Name Version Description
@udecode/plate-basic-marks @udecode/plate-basic-marks npm package badge Basic marks plugins: bold, code, italic, strikethrough, subscript, superscript and underline.
@udecode/plate-font @udecode/plate-font npm package badge Font color and background color plugins.
@udecode/plate-highlight @udecode/plate-highlight npm package badge Highlight plugin.
@udecode/plate-kbd @udecode/plate-kbd npm package badge Keyboard input plugin.

Serializer Plugins

Name Version Description
@udecode/plate-serializer-md @udecode/plate-serializer-md npm package badge Markdown serializer plugin.
@udecode/plate-serializer-csv @udecode/plate-serializer-csv npm package badge CSV serializer plugin.

Plugins

Name Version Description
@udecode/plate @udecode/plate npm package badge All-in-one package.
@udecode/plate-autoformat @udecode/plate-autoformat npm package badge Autoformatting plugin. Replaces predefined characters with a corresponding format (e.g. foo becomes bold).
@udecode/plate-break @udecode/plate-break npm package badge Insert break plugins.
@udecode/plate-ui-dnd @udecode/plate-ui-dnd npm package badge Drag and drop with react-dnd.
@udecode/plate-find-replace @udecode/plate-find-replace npm package badge Find and replace plugin.
@udecode/plate-ui-find-replace @udecode/plate-ui-find-replace npm package badge Find and replace UI.
@udecode/plate-node-id @udecode/plate-node-id npm package badge Node ID plugin.
@udecode/plate-normalizers @udecode/plate-normalizers npm package badge Normalizer plugins.
@udecode/plate-reset-node @udecode/plate-reset-node npm package badge Reset node plugin.
@udecode/plate-select @udecode/plate-select npm package badge Node selecting plugins.
@udecode/plate-styled-components @udecode/plate-ui-fluent npm package badge Styled components (Plate UI library).
@udecode/plate-trailing-block @udecode/plate-trailing-block npm package badge Trailing-block plugin.
@udecode/plate-ui-toolbar @udecode/plate-ui-toolbar npm package badge Toolbar UI (balloon, heading, buttons, etc.).
@udecode/plate-test-utils @udecode/plate-test-utils npm package badge Test utilities.

Looking for slate-plugins?

This repo has been renamed to plate. The name change should not disrupt any current usage, repo clones, pull requests or issue reporting. Links should redirect to the new location. The library formerly known as @udecode/slate-plugins is now available as @udecode/plate.

Author's Note

@zbeyens: I'm building an app with an editor like many of you and my first initiative was to spend months to share this work, while hundreds of developers were coding and debugging the exact same features. Open-source is a long-term investment for a bug-free product and reducing technical debt, so I can only encourage you to join this collaboration. Our goal is to build a fully-featured editor.

Contributors

🌟 Stars and πŸ“₯ Pull requests are welcome! Don't hesitate to share your plugins here. Read our contributing guide to get started, or find us on Slack, we will take the time to guide you.

Thanks goes to these wonderful people (emoji key):


Ziad Beyens

🚧

Dylan Schiemann

🚧

Horacio Herrera

πŸ’» πŸ”Œ πŸ’‘ πŸ› πŸ€”

Eivind Barstad Waaler

πŸ’» πŸ”Œ πŸ’‘ πŸ›

Petr Sahula

πŸ’» πŸ”Œ πŸ’‘

Mark Vujevits

πŸ’»

Alan

πŸ’» πŸ”Œ πŸ› πŸ€”

cycle-app

πŸ’»

Paul

πŸ’» πŸ›

Daniel Lunde

πŸ’» πŸ”Œ

Roman Landenband

πŸ’» πŸ”Œ πŸ’‘

Karthikeyan

πŸ”Œ πŸ’‘ πŸ›

Csaba BenkΕ‘

πŸ”Œ

This project follows the all-contributors specification. Contributions of any kind welcome!

License

MIT

plate's People

Contributors

zbeyens avatar dylans avatar github-actions[bot] avatar ghingis avatar karthikcodes6 avatar alex-vladut avatar allcontributors[bot] avatar horacioh avatar nemanja-tosic avatar alantrrs avatar danlunde avatar spetex avatar vmaark avatar dependabot-preview[bot] avatar stephenkiers avatar bensquire avatar gaelbonjour avatar aj-foster avatar pubuzhixing8 avatar tjramage avatar kanefreeman avatar cawabunga avatar elliothux avatar sepsol avatar welcometogithubletsbegintheadventur avatar eivindw avatar guypy avatar jeffsee55 avatar ngfk avatar ulion avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.