升级到Ghost 3.x
虽然Ghost 2以及现在的3版本都出来很久了,我却一直迟迟没有升级。但昨天这个对CJK用户非常不友好的3年都没修复编辑器bug总算被修好了,我们中文用户也终于能顺畅地跟上新版Ghost,我也终于能从万年1.x升级了。
bug的详情可以看下最新的这个issue。Ghost从版本2开始使用mobiledoc-kit作为编辑器,这个库一直存在这个问题:用输入法的时候还没选中字,打上去的英文字母就被编辑器捕获保存,导致没法正确选字以及英文字母乱蹦,结果就是打汉字的时候基本没法用。Ghost官方就很辣鸡,一堆人用着费劲每年都要跑来提issue,他们还觉得上游库的问题不是自己的问题,也不去修,简直甩锅达人。
由于我是用docker部署的,所以更新步骤非常的简单粗暴。
- 先把旧的整个目录备份一下
- 在旁边别的端口部署另外一个新版Ghost
- 直接开网页进去初始化,新建用户,删掉所有样例的文章,Staff里面把无关的示例用户删掉
- 旧的图片数据直接搬到新的下面,路径在
/var/lib/ghost/content/images/
- 主题搬过去,路径在
/var/lib/ghost/content/themes/
,也可以先确认下主题是否兼容新版,做相应的修改 - 在旧的Labs里使用导出功能,把所有数据导成json
- 在新的那边Labs里把json导进去
- 旧的
config.production.json
直接复制到新的里面挂上去,容器里面的话应该是/var/lib/ghost/config.production.json
这个路径,这个文件我测下来是直接兼容的,如果有报错再看看报错修改下应该就行 - 重新配置前面的Nginx或者Caddy,指向新的Ghost实例
- 把旧的停了
如果像我一样用/2020/11/11/some-article
这样带日期的路径的,需要在Labs里面更新一下routes.yaml,否则默认只是有个文章名,可以参考如下配置。
routes:
collections:
/:
permalink: /{year}/{month}/{day}/{slug}/
template: index
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
最后我想说,新的这个编辑器真是就算没bug也很难用。(摊手