学习如何将 Tiptap 集成到你的 SvelteKit 项目中,以下是详细的步骤指南。或者,你也可以查看我们的 Svelte 文本编辑器示例。
快捷方式:带 Tiptap 的 Svelte REPL
如果你想直接开始,可以查看这个 带 Tiptap 的 Svelte REPL。
要求
创建项目(可选)
如果你已经有一个 SvelteKit 项目,那也没问题,可以跳过此步骤。
在本指南中,我们将从头开始创建一个新的 SvelteKit 项目,命名为 my-tiptap-project。执行以下命令即可设置所需的一切。它会问你很多问题,你可以选择自己喜欢的选项或使用默认设置。
npm create svelte@latest my-tiptap-projectcd my-tiptap-projectnpm installnpm run dev
安装依赖
好了,模板项目已经准备好,接下来让我们安装 Tiptap!在这个示例中,你需要安装 @tiptap/core 包和一些组件、@tiptap/pm 包,以及 @tiptap/starter-kit,它包含了大多数常见的扩展,可以帮助你快速上手。
npm install @tiptap/core @tiptap/pm @tiptap/starter-kit
如果你完成了步骤 1 和 2,你可以通过运行 npm run dev 启动项目,并在浏览器中打开 http://localhost:3000/。如果你是在现有项目中操作,端口号可能会有所不同。
集成 Tiptap
要开始使用 Tiptap,你需要在应用中添加一个新组件。我们将其命名为 Tiptap,并在 src/lib/Tiptap.svelte 文件中添加以下示例代码。
这是在 SvelteKit 中快速运行 Tiptap 的最快方法。它提供了一个非常基本的 Tiptap 版本,不带任何按钮。不用担心,稍后你可以添加更多功能。
<script>import { onMount, onDestroy } from 'svelte';import { Editor } from '@tiptap/core';import StarterKit from '@tiptap/starter-kit';let element;let editor;onMount(() => {editor = new Editor({element: element,extensions: [StarterKit],content: '<p>Hello World! 🌍️ </p>',onTransaction: () => {// 强制重新渲染以确保 `editor.isActive` 按预期工作editor = editor;},});});onDestroy(() => {if (editor) {editor.destroy();}});</script>{#if editor}<buttonon:click={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}class:active={editor.isActive('heading', { level: 1 })}>H1</button><buttonon:click={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}class:active={editor.isActive('heading', { level: 2 })}>H2</button><buttonon:click={() => editor.chain().focus().setParagraph().run()}class:active={editor.isActive('paragraph')}>P</button>{/if}<div bind:this={element} /><style>button.active {background: black;color: white;}</style>
将其添加到你的应用
现在,替换 src/routes/+page.svelte 文件的内容,并使用我们的新 Tiptap 组件:
<script>import Tiptap from '$lib/Tiptap.svelte'</script><main><Tiptap /></main>
Tiptap 现在应该可以在浏览器中看到啦。给自己点个赞吧!:)
