从 jekyll 转向 Next.js

Next.js  Vercel 主推的内容框架既可用于商业网站的制作也可以用于自己的内容展示

由于 FarBox 2.0 简称 FB2的主题匮乏自己也实在没有时间把 Bitcron 的主题移植到过来导致 [tech站](https://tech.wellwellsleep.com) 的主题非常之丑,代码段渲染看得自己都心灵扭曲。于是考虑把内容还是从 FB2 迁出,放到一个轻松的托管平台。加上自己最近把 Git 那套 CI/CD 的流程逻辑摸得差不多,对于 `git push` 类型的日志上传也找到了自动化的方案(理想中就是 `Ctrl+S` 直接推发布)。所以,说动就动吧。

 Next.js 之前参考了很多方案HexoHugoGatsby甚至 Pelican——唯一的 Python 渲染方案最后选了 Next.js一是因为 Markdown 和代码混写的特性还挺有趣虽然可能导致 md 解析问题重重这是后话),二是平台原生的框架应该兼容性不错并不!),三是因为 Hexo  Hugo 在国内被玩烂了Next.js 至少个人用的少一些算是 zb 的私心吧

很快 Vercel  GitHub 之间授权好很快就搭起来了基于 demo 模板的静态站然而当我把过去仅仅 75 篇技术站的 markdown 文档推到 `/data/blog` 文件夹后噩梦开始了 Vercel  Deployment 段不停地报错而且并不告诉错误地具体原因只说代码地某个字段找不到/不正确比如

> 1. frontmatter 里需要 title, date, tags 三个必选字段 tags 需要是列表
>
> 2. 由于 Next.js 采用了 mdx 的生成模式默认 markdown 允许和代码混写所以对于特殊字符 `[], <>, $` 等都有很严格的检查使得在 markdown 纯文本中写特殊字符会被认为是代码而报语法错误网友推荐的办法是批量替换比如 `<`  `{'<'}` 代替但要知道之前做 CTF 题的时候特殊字符数不胜数这种替换做完的话原文惨不忍睹最后还是手工把特殊字符用顿点括起来解决

![Vercel 一排一排的部署报错](./images/2022-01-09a.png)

花了好几个小时逐步把之前随心写的 frontmatter 一一修正—— `jekyll` 时期超级繁多的字段需要删减 `bitcron` 时期超级简洁的字段需要添加还有 `FB2` 时期发现转框架兼容性问题后开始老老实实写但有的字段名对不上仍然需要修改的内容总之每一次转框架或者换平台都是一次蜕皮75 篇文章的技术站已然如此近千篇文章的 ~~二货分享~~ 主力站要改可能要下辈子了——或者自己把 js 代码吃透修改 frontmatter 的判定标准吧

不过从 FB2 迁出来从个人维护的开源框架转向社区维护的前沿技术栈距离下次换框架应该要久一些了吧
Comments
Write a Comment
'