大家圣诞节快乐!🎄

Selfhosting 的进展

四周前 我说:

接下来,距离核心服务开源还差下面几个工作:

  • 1. 让核心服务直接托管静态资源...
  • 2. 让核心服务能处理路由请求...
  • 3. 清理比较重要的 @TODO...
  • 4. 写个安装和部署脚本...

其中 1 和 2 都在上周末完成了,现在可以不依赖 cloudflare R2 和 Worker 了。🚀

我感觉下个月应该可以弄好,然后开源了。

修复问题和优化

修复 Mathjax 渲染问题

Quail 使用 goldmark-mathjax 来渲染数学公式。但是这包有个 bug,会导致渲染进程直接 crash。

还没有时间定位到这个问题具体的原因,所以只是简单地 workaround 了一下。

另外,由于 Mathjax 本身有局限性,在公式里是不可以用 <<=,都需要换成正经的 \(\latex\) 写法,也就是 \lt 或者 \lte,作者需要留意一下。🧮

修复 Atom Feed 渲染错误

一些字段是非 ASCII,忘记使用 <![CDATA[ ... ]]> 包起来了。

修复设置价格以后,无法显示支付页面的问题

把支付相关的业务逻辑从核心服务中拆走以后,一部分状态没同步导致的。现在已经修复了。

修复 H1 标签不被识别为目录的问题

按理说,文章正文中是不应该出现 H1 标签的——因为一个页面应该只有一个 H1 标签,那就是标题。

但是作者依然可能输入 H1,所以依然需要正常处理它们。这次就是修复了这个问题

让语法高亮支持更多语言

之前使用 highlight.js 这个库,默认只会高亮最常见的 40 种语言的语法。小众一些的没法高亮。这次就添加了更多语言,能支持 highlight.js 非第三方的所有语言,例如

FROM python:3.10.11-slim-bullseye AS builder
RUN apt-get update && apt-get install -y \
    fonts-wqy-zenhei \
    && rm -rf /var/lib/apt/lists/*

这周的情况就是如此。📝🚀