This library aims to be a powerful and flexible editor within the Vue ecosystem, combining Tiptap with ShadCN for a seamless experience. β¨
π Demo: https://tiptap-shadcn-vue.pages.dev
π While itβs not my main priority, I will provide active support.
π₯ If youβd like to contribute, I can invite you to the project.
π‘ Have an idea? Open an issue, and letβs discuss!
Letβs build an amazing editor for Vue together! π¨π₯
This package includes the following components:
Make sure to install the required dependencies:
npx shadcn-vue@latest add "https://tiptap-shadcn-vue.pages.dev/r/tiptap.json"
<script setup lang="ts">
import StarterKit from '@tiptap/starter-kit'
import { useEditor } from '@tiptap/vue-3'
const editor = useEditor({
content: '<p>Hello World!</p>',
extensions: [
StarterKit,
// Add other extensions as needed
],
})
</script>
<template>
<TiptapProvider :editor="editor">
<TiptapToolbar />
<TiptapContent />
<TiptapStatusBar show-word-count />
</TiptapProvider>
</template>
This library uses the following shadcn-ui components:
Make sure these components are available in your project.
This library is designed to be highly customizable. You can modify or extend any component to fit your specific needs:
Components are located in the components/tiptap directory. Each component follows a consistent structure:
components/tiptap/
βββ TiptapEditor.vue
βββ TiptapContent.vue
βββ TiptapToolbar.vue
βββ ...
Components communicate through the editor instance provided by the TiptapProvider. When making changes:
After modifying components, test your changes thoroughly across different content types and editor states to ensure compatibility and stability.
MIT