Nuxt TipTap Editor
立即將具備基本功能的 TipTap Editor 新增至您的 Nuxt 3 應用程式。
快速設定
- 將
nuxt-tiptap-editor
依賴項新增至您的專案npx nuxi@latest module add tiptap
- 將
nuxt-tiptap-editor
新增至nuxt.config.ts
的modules
區段export default defineNuxtConfig({ modules: ['nuxt-tiptap-editor'], tiptap: { prefix: 'Tiptap', //prefix for Tiptap imports, composables not included }, });
- 您可以參考此檔案的內容。
將程式碼複製到您自己的components/TiptapEditor.vue
。
任何路徑皆可,只要位於具有.vue
副檔名的components
目錄下即可。<template> <div> <div v-if="editor"> <button @click="editor.chain().focus().toggleBold().run()" :disabled="!editor.can().chain().focus().toggleBold().run()" :class="{ 'is-active': editor.isActive('bold') }" > bold </button> <button @click="editor.chain().focus().toggleItalic().run()" :disabled="!editor.can().chain().focus().toggleItalic().run()" :class="{ 'is-active': editor.isActive('italic') }" > italic </button> <button @click="editor.chain().focus().toggleStrike().run()" :disabled="!editor.can().chain().focus().toggleStrike().run()" :class="{ 'is-active': editor.isActive('strike') }" > strike </button> <button @click="editor.chain().focus().toggleCode().run()" :disabled="!editor.can().chain().focus().toggleCode().run()" :class="{ 'is-active': editor.isActive('code') }" > code </button> <button @click="editor.chain().focus().unsetAllMarks().run()"> clear marks </button> <button @click="editor.chain().focus().clearNodes().run()"> clear nodes </button> <button @click="editor.chain().focus().setParagraph().run()" :class="{ 'is-active': editor.isActive('paragraph') }" > paragraph </button> <button @click="editor.chain().focus().toggleHeading({ level: 1 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 1 }) }" > h1 </button> <button @click="editor.chain().focus().toggleHeading({ level: 2 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 2 }) }" > h2 </button> <button @click="editor.chain().focus().toggleHeading({ level: 3 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 3 }) }" > h3 </button> <button @click="editor.chain().focus().toggleHeading({ level: 4 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 4 }) }" > h4 </button> <button @click="editor.chain().focus().toggleHeading({ level: 5 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 5 }) }" > h5 </button> <button @click="editor.chain().focus().toggleHeading({ level: 6 }).run()" :class="{ 'is-active': editor.isActive('heading', { level: 6 }) }" > h6 </button> <button @click="editor.chain().focus().toggleBulletList().run()" :class="{ 'is-active': editor.isActive('bulletList') }" > bullet list </button> <button @click="editor.chain().focus().toggleOrderedList().run()" :class="{ 'is-active': editor.isActive('orderedList') }" > ordered list </button> <button @click="editor.chain().focus().toggleCodeBlock().run()" :class="{ 'is-active': editor.isActive('codeBlock') }" > code block </button> <button @click="editor.chain().focus().toggleBlockquote().run()" :class="{ 'is-active': editor.isActive('blockquote') }" > blockquote </button> <button @click="editor.chain().focus().setHorizontalRule().run()"> horizontal rule </button> <button @click="editor.chain().focus().setHardBreak().run()"> hard break </button> <button @click="editor.chain().focus().undo().run()" :disabled="!editor.can().chain().focus().undo().run()" > undo </button> <button @click="editor.chain().focus().redo().run()" :disabled="!editor.can().chain().focus().redo().run()" > redo </button> </div> <TiptapEditorContent :editor="editor" /> </div> </template> <script setup> const editor = useEditor({ content: "<p>I'm running Tiptap with Vue.js. 🎉</p>", extensions: [TiptapStarterKit], }); onBeforeUnmount(() => { unref(editor).destroy(); }); </script>
- 現在編輯 HTML,將
button
替換為您 UI 提供的元件,或使用 tailwind 或您使用的任何 CSS 設定樣式,新增圖示或文字,修改 active 狀態類別,驗證深色模式等等。
完成!您現在可以在您的 Nuxt 應用程式中使用 Nuxt TipTap Editor ✨
開發
# Install dependencies
yarn install
# Generate type stubs
yarn dev:prepare
# Develop with the playground
yarn dev
# Build the playground
yarn build
# Run ESLint
yarn lint
# Run Vitest
yarn test
yarn test:watch
# Release new version - needs to be with npm for login to work
npm run release
貢獻
歡迎送出任何有效的 pull request。非常樂意獲得任何協助!