前言

目前计划着手 sakura 主题 2.0 开发。其主要解决 1.x 中存在的一些比较致命的问题。因此 2.0 计划重新书写整体架构,本文基本阐述期望中的 sakura 2.0 架构方案。

目标

Sakura 2.0 目标如下

  • 使用可扩展框架。即最基础框架仅定义页头、页内容、页尾。对于其内部内容不进行任何限制。
  • 基于 freemarker 组件化书写最基础框架。参见 https://github.com/halo-dev/halo/issues/1292
  • 开发环境使用 sass 进行 css 开发,并使用 gulp 进行自动化转换,方便开发。
  • 将每个页面的 js 进行模块化分离,但要适度合并,防止文件过于零散,造成多余的网络开销。
  • 主题内可以选择多个子主题,例如带图片与不带图片。可以通过 css 等进行不同的风格处理,这需要得益于基础可扩展框架。
  • 所有非必要 JS 采用并行异步加载的方式,如果暂时无法获取,在不影响现有页面的情况下,可以根据优先级进行后置处理。
  • 提供全局静态资源自定义地址。
  • PJAX 完全重写
  • 方便用户自定义内容
  • 规范所有代码写法