slate-react library implemented with vue3
- ✨ Highly customizable features, use slate core at the bottom level
- ⚡ Use
vue3
for high-performance rendering, and later connect to vapor mode - ☕ The latest version of the core, design tends to be stable
npm install slate-vue3
2. Now, you can use it in vue-sfc 👉 live demo
<script setup lang="ts">
import { Slate, Editable, } from "slate-vue3";
import { createEditor } from "slate-vue3/core";
import { withDOM } from "slate-vue3/dom";
import { withHistory } from "slate-vue3/history";
const initialValue = [
{
type: "paragraph",
children: [{ text: "Let's start" }],
},
];
const editor = withHistory(withDOM(createEditor()));
editor.children = initialValue;
</script>
<template>
<Slate :editor="editor">
<Editable />
</Slate>
</template>
To get a sense for how you might use Slate, check out a few of the examples:
- Rich text — the features you'd expect from a basic editor.
- Collaborative editing — to achieve collaborative editing and cursor.
- Markdown preview — to add key handlers for Markdown-like shortcuts.
- Inlines — wrap text in inline nodes with associated data.
- Images — to use void (text-less) nodes to add images.
- Hovering toolbar — a hovering toolbar can be implemented.
- Tables — to nest blocks to render more advanced components.
- Paste HTML — to use an HTML serializer to handle pasted HTML.
- Mentions — to use inline void nodes for simple @-mentions.
- See all the examples...
If you have an idea for an example that shows a common use case, pull request it!
This document
serves only as a supplement to the slate document and mainly provides case studies and differences between slate-vue3
and slate-react
If you're using slate
for the first time, check out the Getting Started walkthroughs and the Concepts to familiarize yourself with slate's architecture and mental models.
Due to the complexity of maintaining multiple packages and the lack of reusability of sub packages in other frameworks, slate-vue3 does not use workspace and only performs sub packaging during packaging
Package | Version | Description |
---|---|---|
slate-vue3/core |
slate's core data model logic. | |
slate-vue3/dom |
DOM implementation of slate | |
slate-vue3/history |
a plugin that adds undo/redo history to slate. | |
slate-vue3/hyperscript |
a hyperscript tool to write JSX slate documents! | |
slate-vue3/yjs |
integration of slate-yjs
|
Welcome to provide suggestions on the issue, it would be even better if PR
could be mentioned along with it
slate-vue3
is MIT-licensed.