将博客系统迁移至了 CloudFlare

将博客系统迁移至了 CloudFlare

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

作者将博客系统从 Vercel 迁移至 CloudFlare,使用 NextJS 和 TipTap 编辑器。在迁移过程中解决了数据兼容和导入问题,最终通过保存原始格式和 HTML 实现了兼容性。新系统支持富文本编辑,提升了内容发布的便利性。

🎯

关键要点

  • 博客系统从 Vercel 迁移至 CloudFlare,使用 NextJS 和 TipTap 编辑器。

  • 原博客系统基于 MDX 静态文件,发布流程繁琐,导致更新较少。

  • 迁移到 CloudFlare 是为了降低成本并学习新技术栈。

  • 选择 NextJS 作为前端框架,因其对 CloudFlare 的支持更好。

  • 数据库使用 CloudFlare 的 D1,静态存储使用 R2,适合博客需求。

  • 编辑器选择 TipTap,因其与已有开源编辑器兼容性好。

  • 数据迁移过程中遇到兼容性问题,通过保存原始格式和 HTML 实现解决。

  • 导入数据时,采用从生成的 HTML 抓取正文的方法,最终成功导入。

  • TipTap 编辑器在处理图文混排时遇到问题,最终找到解决方案。

🔎

延伸解读

迁移的动机与挑战

作者选择将博客系统从 Vercel 迁移至 CloudFlare,主要是为了降低成本并学习新技术栈。然而,迁移过程中遇到了数据兼容性问题,尤其是从 MDX 到 TipTap 的格式转换,导致内容丢失的风险。作者通过保存原始格式和 HTML 的方式来解决这一问题,显示了在技术迁移中灵活应对挑战的重要性。

技术栈的选择

在新系统中,作者选择了 NextJS 作为前端框架,因其对 CloudFlare 的支持更好。虽然最初考虑使用 Remix,但由于其本地热更新问题,最终决定回归 NextJS。这一选择强调了在技术选型时,稳定性和兼容性的重要性,尤其是在快速发展的技术环境中。

数据导入的复杂性

数据导入过程中的复杂性不容忽视。作者最初尝试将 MDX 转换为 TipTap 格式,但由于兼容性问题,最终选择直接从生成的 HTML 抓取正文。这一策略的成功实施,提醒读者在面对技术迁移时,灵活调整方案以应对不可预见的困难是至关重要的。

延伸问答

为什么作者选择将博客系统迁移到 CloudFlare?

作者迁移到 CloudFlare是为了降低成本并学习新技术栈。

在迁移过程中遇到了哪些主要问题?

主要问题是数据兼容性和导入过程中的格式不兼容。

作者选择了哪些技术栈来搭建新的博客系统?

作者选择了NextJS作为前端框架,CloudFlare的D1作为数据库,R2作为静态存储,TipTap作为编辑器。

如何解决数据迁移中的兼容性问题?

通过在数据库中同时保存原始格式和最终的HTML来解决兼容性问题。

TipTap编辑器在使用中遇到了什么问题?

TipTap在处理图文混排时,复制粘贴的HTML内容中的图片会被移除。

作者是如何导入数据到CloudFlare的D1数据库的?

作者通过将本地的Sqlite数据库dump成sql文件,逐条上传记录到D1数据库,最终成功导入。

🏷️

标签

➡️

继续阅读