这周修复了一个有点傻的 bug。

这个 bug 最早是 @orange 的一位读者发现,然后这周在一位 Discord 社区用户 @abser 的帮助下成功定位然后修复了。

对了,欢迎加入 Quail 的 Discord 服务器

这个 bug 会在在一个边缘条件下触发,导致登录生成的 token 里有一个字段是空值,从而在后续的鉴权中失败,用户被反复要求重新登录。

使用体验优化

除了修复 bug,本周还做了一些体验优化。

第一个优化目标是处理上传图片的遮罩打断了用户操作的问题

例如,你是作者,正在写文章。写着写着,上传了一张图片。

此时旧的 Quail 编辑器会使用一个很大的遮罩把编辑器盖住,阻止在上传过程中编辑;等待图片上传完成以后,这个遮罩才会消失。如果这张图片比较大,那么这个遮罩会持续很长时间,对于正在写作的作者来说,是一种打断。

因此新版编辑器中,图片上传不再阻塞作者的编辑工作。取而代之会在上传的位置提示「uploading ... 」这样的提示。当上传成功以后,这个提示会被图片链接取代。

第二个优化是写新文章时,slug 不再是必填项目

之前,写新文章时是必须要填写 slug 的。可以让 AI 填,也可以手工填。一个好的 slug 可以稍稍提高 SEO 的效果。

但我发现很多作者不知道 slug 是什么。

所以现在如果保存文章时没有 slug,那么 Quail 会根据标题,自动生成一个 slug。这里会在处理标题时遵循这样的规则:

  1. 如果标题中包含拉丁字母的方言版本,例如 à,会被转换为 a
  2. 如果标题中包含非拉丁字母,会被 url.QueryEscape 转换成拉丁字母
  3. 最后会抹掉除了 [^a-zA-Z0-9\\-_]+ 以外的所有字符

微调了一下官网首页

许久没有更新过的官网这次也更新了,增加了一个可交互的章节,方便作者评估一下自己值多少钱。

An image to describe post

另一个改动是给「推送到多个渠道」的功能介绍做了个简单的动画

An image to describe post

可以在官网看到。

开启一个新迭代去支持 stripe

这个迭代又可以分成两个 stages:一是按照现在的模式添加 stripe 支持;二是按照「Unlock creator monetisation on your platform」调整一下 payouts 的方式。

由于 stripe 接入过于简单,所以 stage 1 实质上已经做完了。不过还有大量的回归测试需要做,以及把处理税务相关的工作也完成才能上线。

预计到 11 月结束时差不多能都完成。


今天一开始说到软件系统的故障和 Bug,很多人有很深的误解:

  • 为什么总是出问题
  • 为什么上线后需要一直持续地花钱
  • 为什么故障修复需要那么长时间,而且没个准信
  • ...

这里的问题是:

  • 大部分人都不具备相关的知识,因此不能理解软件系统是怎么运作的
  • 但让大部分人去具备相关知识是不现实,因此在宣传或者科普时,很多人喜欢用比喻、类比、简化等方式去帮助理解,最后得到的是扭曲的概念
  • 当问题发生时,被扭曲的概念会加剧以上误解

我觉得所有东西,在传达它们时,只是语言文字的相。语言文字背后要传达的真相,如果不亲自去接触它们,都是被扭曲过的。只不过根据语言文字的不同,扭曲程度有差异而已。

所以我觉得啊,在传播概念的时候,最好还是减少对比喻、类比这些方式的依赖,否则未来信息出现了偏差,等于你也有责任。而在重要的事情上,还是亲自做至少一遍比较好。