tiptapify
Tiptapify
Tiptap 3 Editor Vuetify toolbar implementation
Status
Beta
Live Demo
Requirements
- Vue 3.x
- Vuetify.js 3.x
Features
- Vuetify components
- Markdown support
- TypeScript support
- i18n
- Bubble Menu
- Floating Menu
- Slash Command
- Skins: classic (default), pastel, and custom (
registerSkin/ inline) via theskinprop - Dark theme
Installation
Install package
# npm
npm i tiptapify
# or pnpm
pnpm i tiptapify
Register plugin in your main.js (main.ts)
import TiptapifyPlugin from 'tiptapify';
import 'tiptapify/style.css';
app.use(TiptapifyPlugin, { locale: 'en' });
Should be something like this
import { createApp } from "vue";
import App from "./App.vue";
import { aliases, mdi as mdiSvg } from 'vuetify/iconsets/mdi-svg'
import 'vuetify/styles'
import { createVuetify } from 'vuetify'
import { aliases, mdi } from 'vuetify/iconsets/mdi-svg'
import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'
const app = createApp(App)
const vuetify = createVuetify({
components,
directives,
icons: { defaultSet: 'mdi', aliases, sets: { mdiSvg } },
})
app.use(vuetify);
// add these lines
import TiptapifyPlugin from 'tiptapify';
import 'tiptapify/style.css';
app.use(TiptapifyPlugin, { locale: 'en' });
// Mount vue app
app.mount('#app')
Usage
<script setup lang="ts">
const handleEditorReady = (options: { editor: any, getHTML: Function, getJSON: Function, echo: Function }) => {
console.log('The editor is ready', options.editor);
console.log('editor html', options.getHTML());
console.log('editor json', options.getJSON());
};
</script>
<template>
<Tiptapify
:content="content"
:bubble-menu="true"
:floating-menu="false"
:slash-commands="true"
@editor-ready="handleEditorReady"
/>
</template>
You can choose which toolbar items to display by providing array/object to items prop
<script setup lang="ts">
// show items in predefined sections
const items = ['fontFamily', 'fontSize', 'lineHeight', 'textColor', 'highlightColor', 'code', 'codeBlock', 'pagebreak']
// show items in custom sections
const items = { section1: ['textColor', 'fontFamily', 'fontSize', 'lineHeight', 'code', 'codeBlock'], section2: ['pagebreak'] }
</script>
<template>
<Tiptapify
...
:items="items"
/>
</template>
Also you can choose which toolbar items to ignore by providing prop items-exclude alongside items prop.
<script setup lang="ts">
const items = ['fontFamily', 'fontSize', 'lineHeight', 'textColor', 'highlightColor', 'code', 'codeBlock', 'pagebreak']
</script>
<template>
<Tiptapify
...
:items="items"
:items-exclude="true"
/>
</template>
L10N (Localisation)
Most translations are AI-generated therefore they might contain mistakes!
If you found a wrong translation or want to add a new language, feel free to send your translation made from the template.
Feedback
Found a bug or have ideas on improvement? Feel free to create a ticket.
TODO
- menu items list customizable
- extend a built-in font list
- raw html mode
- fullscreen mode
- tables extension
- preview extension
- image extension
- text styling (background & font color)
- dark theme
- emoji extension
- video extensions
- filter option in emoji extension
- option to provide custom extension
- iframe extension
- charmap extension
- demo
- documentation
- AI prompt dialog with thinking/reasoning effort, streaming output, and backend generation
- print hotkey in a tooltip
- extended video extensions
Licence
Related Packages
echo-editor
A modern AI-powered WYSIWYG rich-text editor for Vue, based on Tiptap and shadcn...
16,933
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.3.5 | ^3.5.38 | MIT | |
| 0.3.4 | ^3.5.38 | MIT | |
| 0.3.3 | ^3.5.38 | MIT | |
| 0.3.2 | ^3.5.38 | MIT | |
| 0.3.1 | ^3.5.38 | MIT | |
| 0.3.0 | ^3.5.38 | MIT | |
| 0.2.6 | ^3.5.38 | MIT | |
| 0.2.5 | ^3.5.38 | MIT | |
| 0.2.4 | ^3.5.38 | MIT | |
| 0.2.3 | ^3.5.38 | MIT | |
| 0.2.2 | ^3.5.38 | MIT | |
| 0.2.1 | ^3.5.38 | MIT | |
| 0.2.0 | ^3.5.38 | MIT | |
| 0.1.6 | ^3.5.38 | MIT | |
| 0.1.5 | ^3.5.38 | MIT | |
| 0.1.4 | ^3.5.14 | MIT | |
| 0.1.3 | ^3.5.14 | MIT | |
| 0.1.2 | ^3.5.14 | MIT | |
| 0.1.1 | ^3.5.14 | MIT | |
| 0.1.0 | ^3.5.14 | MIT | |
| 0.0.36 | ^3.5.14 | MIT | |
| 0.0.35 | ^3.5.14 | MIT | |
| 0.0.34 | ^3.5.14 | MIT | |
| 0.0.33 | ^3.5.14 | MIT | |
| 0.0.32 | ^3.5.14 | MIT | |
| 0.0.31 | ^3.5.14 | MIT | |
| 0.0.30 | ^3.5.14 | MIT | |
| 0.0.29 | ^3.5.14 | MIT | |
| 0.0.28 | ^3.5.14 | MIT | |
| 0.0.27 | ^3.5.14 | MIT |
Showing the latest 30 of 54. See every release on npm