Castoro 是一个经过大幅增强的 XenForo 分发,且随 XenForo 的主版本同步更新。

此页面从非开发角度阐述所有增强与优化的方面。文档内容随 Castoro 更新。

本地化​

Castoro 从代码层向上进行汉化。XenForo 源代码的注释、底层消息、抛出异常以及命令行文本均已翻译为简体中文,并根据汉语习惯做出了适当调整。这些调整还涉及短语文件和若干模板,进而使 XenForo 从内到外均具备优秀的中文可读性。具体来讲,模板中大量被硬编码的半角字符被修改为全角;同时,短语文本中替位变量的位置被调整为汉语友好。

单页​

传统网页在点击链接时,页面会先进行卸载,,然后再彻底对新的内容执行渲染。现代 Web 为了确保用户的浏览体验,已经开始使用各种手段实现网站的单页化。这是指:在单个网页中按需替换新的内容,而无需对当前网页进行重载。XenForo 使用的是经典网页模式——点击绝大多数链接,页面将闪烁,浏览器会完成一次完整的跳转。

通过引入并重新封装一个十分健壮的动态请求与 DOM 处理库,同时深度重写 XenForo 核心加载代码,Castoro 为之引入了单页应用(Single Page Application,SPA)模式。在这种模式下被点击的链接,将引导浏览器动态地更新网页内容,而无需任何刷新。

单页应用会为网站带来诸多好处。这包括但不限于显著的用户体验与停留时间提升、大量可能实现的新特性获得底层支持,以及无缝的动画控制。同时,由于这些代码重构并未发生在网络请求层,因而搜索引擎优化(SEO)不会受到任何影响。

网络流量​

编译生成样式表选择式嵌入性矢量图会为运行 XenForo 的网站带来巨量的流量消耗。

网站样式表会被存放在一个名为css.php的入口中。XenForo 将主题的样式源代码进行编译、压缩,然后通过该入口为不同的页面返回不同的样式。这么做的不足是:这些经过编译的样式代码并不是“完美优化”的:由于内置源代码编译器的规则固化,最终生成的样式表文件包含了大量冗余内容,且无法被内容分发网络(CDN)有效缓存。

为解决此问题,Castoro 允许其使用者(尤其是主题开发人员)直接引用本地 CSS,而非在模板中编写 LESS(对于高级开发人员,这是一项极其拖慢速度的工作)。当然,原有的主题样式仍然可用,但 Castoro 的默认皮肤(以及后续 Seamworks 发行的所有 Castoro 皮肤)都将不再正式支持 LESS 模式。

对于某些皮肤而言,Castoro 会同时发布其两个版本,但 LESS 版漏洞修复和特性更新的速度将远远慢于 CSS 版。

选择式嵌入性矢量图则是 XenForo 2.3 引入的一项新特性。该特性从矢量图标库中按需地抽取原始图标代码,然后直接将其放置在最终生成的 HTML 代码中。同样地,该策略使得任何图标永远无法被 CDN 缓存,因为它们是随着网页内容一同被传输的。

Castoro 简单地回退了该特性,直接使用图标字体文件,从而允许这些图标被缓存,以节省长远角度的网络流量。

第三方集成​

头部平台的互联登录得到了补全。包括 QQ、微信、华为账号与新浪微博。在付款方面,Castoro 则集成了支付宝与微信支付。