news 2026/6/15 18:49:56

【Tiptap】在服务器端使用 Tiptap 内容格式转换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Tiptap】在服务器端使用 Tiptap 内容格式转换

在 Node.js 环境将 Tiptap 的 JSON 内容转换为 Markdown,有两种推荐方式,使用官方@tiptap/markdown扩展(最新版本支持良好)。

推荐方式 1:使用 MarkdownManager(无需创建完整 Editor 实例,最适合纯服务端转换)

先确保安装:

npminstall@tiptap/markdown @tiptap/starter-kit# 如果有其他扩展(如 Image、Table 等),一并安装

然后在 Service 中创建 MarkdownManager 实例:

import{Injectable}from'@nestjs/common';import{MarkdownManager}from'@tiptap/markdown';importStarterKitfrom'@tiptap/starter-kit';import{Markdown}from'@tiptap/markdown';// 需要导入 Markdown 扩展本身// 导入其他扩展...// import Image from '@tiptap/extension-image';// import Table from '@tiptap/extension-table';// 等constextensions=[StarterKit,Markdown,// 必须包含 Markdown 扩展来启用序列化// Image,// Table,// 其他扩展...];constmarkdownManager=newMarkdownManager({extensions,// 传递所有 extensions,包括 Markdown});@Injectable()exportclassTiptapService{// JSON → MarkdownjsonToMarkdown(json:any):string{returnmarkdownManager.serialize(json);}// 额外:如果需要 Markdown → JSONmarkdownToJson(markdown:string):any{returnmarkdownManager.parse(markdown);}}

使用示例(在 Controller 或其他地方):

constjsonFromDB={type:'doc',content:[...]};// 从数据库取的 Tiptap JSONconstmarkdown=this.tiptapService.jsonToMarkdown(jsonFromDB);// markdown 就是字符串,如 "# Title\n\n**Bold** text"

这种方式完全服务端兼容、无 DOM 依赖、最轻量高效。

推荐方式 2:创建 headless Editor 实例(兼容性好,editor.getMarkdown())

如果你已经在其他地方用了 Editor,也可以这样:

import{Editor}from'@tiptap/core';importStarterKitfrom'@tiptap/starter-kit';import{Markdown}from'@tiptap/markdown';// 其他扩展...constextensions=[StarterKit,Markdown,// 必须包含// 其他...];@Injectable()exportclassTiptapService{jsonToMarkdown(json:any):string{consteditor=newEditor({extensions,content:json,// 直接传入 JSONelement:null,// 关键:服务端不绑定 DOM});constmarkdown=editor.getMarkdown();editor.destroy();// 用完销毁,避免内存泄漏returnmarkdown;}}

注意事项

  • 必须在 extensions 中包含Markdown扩展,否则getMarkdown()serialize()不生效。
  • 如果需要 GitHub Flavored Markdown(支持表格、任务列表等),配置:
    Markdown.configure({markedOptions:{gfm:true},})
  • 自定义扩展需要实现renderMarkdown来正确序列化(参考官方文档)。
  • 避免先转 HTML 再转 Markdown(容易丢失格式,如表格),直接用以上方式最准确。

这样就能在 NestJS 服务端安全地将 Tiptap JSON 转换为 Markdown 了。更多细节见官方文档:https://tiptap.dev/docs/editor/markdown

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 10:10:02

从零开始训练自己的Stable Diffusion风格模型——lora-scripts完整教程

从零开始训练自己的Stable Diffusion风格模型——lora-scripts完整教程 在AI生成内容日益普及的今天,你是否曾想过拥有一个只属于你的艺术风格?不是简单地调个提示词,而是让模型真正“学会”你的审美——比如把每张风景图都自动渲染成你最爱的…

作者头像 李华
网站建设 2026/6/15 13:35:56

mfmjpegdec.dll文件损坏或丢失 免费下载方法

在使用电脑系统时经常会出现丢失找不到某些文件的情况,由于很多常用软件都是采用 Microsoft Visual Studio 编写的,所以这类软件的运行需要依赖微软Visual C运行库,比如像 QQ、迅雷、Adobe 软件等等,如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/15 12:13:05

用户行为数据分析:了解使用习惯以指导产品迭代

用户行为数据分析:了解使用习惯以指导产品迭代 在 AI 模型日益普及的今天,一个核心问题逐渐浮现:通用大模型虽然强大,但面对具体业务场景时,往往显得“不够懂你”。比如,一家主打国风美学的品牌希望生成具有…

作者头像 李华
网站建设 2026/6/15 12:13:59

FastStone Capture注册码失效?不如试试lora-scripts生成视觉素材

FastStone Capture注册码失效?不如试试lora-scripts生成视觉素材 在数字内容创作的战场上,一个常见的困境正悄然浮现:你依赖多年的截图与图像处理工具突然弹出“注册码已过期”的提示,而项目截止日期却迫在眉睫。FastStone Captur…

作者头像 李华
网站建设 2026/6/15 12:12:56

SEO关键词布局技巧:提升‘lora-scripts’相关内容排名

SEO关键词布局技巧:提升“lora-scripts”相关内容排名 在生成式AI(AIGC)加速落地的今天,越来越多开发者和内容创作者希望快速定制专属模型——无论是为Stable Diffusion训练一种独特画风,还是让大语言模型掌握特定行业…

作者头像 李华
网站建设 2026/6/15 12:15:51

【C++专家私藏技术】:静态链接与内核配置协同优化的7个黄金法则

第一章:C静态链接与内核配置协同优化概述在高性能计算和嵌入式系统开发中,C应用程序的构建效率与运行时性能高度依赖于编译期的静态链接策略以及操作系统内核的底层配置。通过合理协调静态链接过程与内核参数调优,可以显著减少程序启动延迟、…

作者头像 李华