polyxslt:给浏览器补上一个轻量级 XSLT 处理器
我给本站的 RSS 和 Atom feed 加了一个纯 JavaScript 实现的 XSLT 处理器,为浏览器移除内建 XSLT 支持做准备。
本站在2021年2月5日为RSS feed和sitemap添加了XSLT样式,后来重新设计本站主题 chaos-theme 时也沿用了这一做法。
这些 XML 文档便于程序读取,但直接给人看就不太直观;XSLT 可以把它们转换成 HTML,让同一份内容同时服务于程序和人类读者。
共 10 篇文章。
我给本站的 RSS 和 Atom feed 加了一个纯 JavaScript 实现的 XSLT 处理器,为浏览器移除内建 XSLT 支持做准备。
本站在2021年2月5日为RSS feed和sitemap添加了XSLT样式,后来重新设计本站主题 chaos-theme 时也沿用了这一做法。
这些 XML 文档便于程序读取,但直接给人看就不太直观;XSLT 可以把它们转换成 HTML,让同一份内容同时服务于程序和人类读者。
最近给 blog 增加了一个自定义的 404 错误页面。像 Hugo 这样的静态网站生成器在构建时,默认会把渲染好的 404 页面直接输出在网站根目录下,即 /404.html。
针对这类页面,我们通常希望:
404。/404.html 时,同样呈现其内容,但返回的 HTTP 状态码依然必须是 404,而不是 200 OK。其实想搭一套 paperless-ngx 已经挺久的了,趁着四月底休假的时候搞了一动。
我们经常会有一些各式各样的 PDF 文档,例如和各种供应商、公司之间签署的文件、账单,以及参加一些学术会议时留下的幻灯、资料等等。比较自然的办法就是创建不同的文件夹来分门别类地保存。然而,简单地用文件系统来保存这些文件有这样一些问题:
昨天,FreeBSD 13.2 正式发布了。kTLS 是在 FreeBSD 13.0 中由 Netflix 赞助的新功能,过去,TLS/SSL 应用程序对于通讯内容的加解密通常是在用户态进行的,这样一来,系统在读取出数据和发出数据之前需要进行额外的上下文切换,并在内核和用户地址空间之间来回复制缓冲区来满足加解密的需要。有了 kTLS 之后,内核可以在 sendfile(2) 时直接在内核上下文中完成加密和填充到网络协议栈的操作,从而减少了上下文切换和不必要的复制操作。
上回书 说到从 Movable Type 搬到 Hugo 上之后,就彻底失去了评论和 pingback 的功能。 因为现时正经写 blog 的人已经越来越少,因此 pingback 似乎意义不太大了,但是能够收集评论反馈还是有一些意义的。
早前,Movable Type 实现的评论系统与其自身的账户系统有集成,并且还支持包括 Facebook、Google 在内的一系列其他 OpenID 的系统。这个功能的一个好处是对于经常访问的人来说比较友好,例如站主可以将某个 ID 设置为受信任的 ID,从而避免先审后发。
之前 Frank 同学提到了这个问题,所以今天花了些时间来配置。 nginx 对 SPDY 的支持是一项比较新的特性,只有在 1.3.x 版本以上才支持。FreeBSD 的 nginx-devel 默认并不启用 SPDY,需要在 make config 的阶段启用。
我的 blog 在之前一直是用 Apache HTTPD 来作为 CGI 引擎来跑 Movable Type。在迁移到北美之前,使用两个域名/IP来分别运行静态页面 (lighttpd) 和 CGI 内容。后来因为全面转向 nginx,在迁移过程中改成了使用一个域名、使用 nginx 在前面跑静态页,并作为反向代理来连接后端的 Apache 1.3.x 实例(先前是 Apache 2.2.x,由于这个实例只用来跑 CGI,所以采用了较低版本的 Apache 以节省资源)。
nginx可以作为很多种不同的用途。对Web服务器来说,nginx可以直接用作https服务器,也可以用于为现有的http Web服务器作为前端代理和负载平衡的同时提供https之用。
周末抽时间对网站做了一些调整。主要是把网站迁移到nginx上,不过遇到一些问题。Movable Type以FCGI::Spawn运行的时候,有时会反复出现先前的页面(例如,在mt.cgi上登录时,在提交登录之后仍会出现登录界面,而不是正常完成登录)。用ktrace看了一下FastCGI进程,结果发现之前看到的资料里面有相当多的小问题,但这个问题最终没有解决,暂时起了一个Apache来以cgi方式处理来绕过问题了。