Skip to content

Solitude v4.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 14 Jul 01:59
· 27 commits to dev since this release

Solitude 4.0 是一次面向现代浏览器的重大版本升级,重点重构主题 JavaScript 运行时,并整合 3.0.20 之后的页面与交互改进。

主要更新

  • 采用原生 ES 模块,以 main.js 作为核心入口,搜索、音乐、友链、右键菜单、翻译、文章 AI 与封面色按配置动态加载。
  • 新增统一 PJAX 生命周期,通过 AbortController 和 disposer 清理事件、观察器、定时器及第三方实例,降低多次导航后的资源累积。
  • 页面配置迁移为 JSON 数据节点,并提供统一的 window.Solitude 扩展入口。
  • 统一脚本和样式资源加载器,缓存加载中的 Promise,避免评论、搜索和图集资源重复请求。
  • 合并 API、Average Color 与本地封面色实现中的缓存、颜色转换、CSS 变量和错误回退逻辑。
  • 模板交互迁移到 data-solitude-action 事件委托,移除一方模板中的内联点击、输入和错误处理。
  • 优化滚动、resize、瀑布流、tooltip、图片懒加载、音乐控制和归档分页逻辑。
  • 友链支持统一 JSON 数据源与异步渲染,随机友链不再逐页注入脚本。
  • 改进首页推荐、分类栏、归档页、关于页、文章元信息、分页、侧栏、控制台与音乐胶囊的布局和交互。

Breaking Changes

  • 浏览器基线调整为当前 Chrome、Edge、Firefox 和 Safari 的近两个主要版本,不再支持 IE。
  • 旧的 scoutilsrmaicoverColor 等松散全局接口不再作为主题扩展入口;自定义集成应迁移至 window.Solitude
  • 使用外部 CDN 或自托管主题脚本时,必须保留 source/js/ 下 ES 模块的相对目录结构。
  • 自定义模板应使用 data-solitude-actionwindow.Solitude API,避免直接注入功能性内联事件。

Public API

  • Solitude.navigate(url)
  • Solitude.refresh()
  • Solitude.copy(text)
  • Solitude.toggleTheme()
  • Solitude.loadScript(url, options)
  • Solitude.loadStyle(url, options)
  • Solitude.on(event, handler)

可订阅事件:readybeforeNavigateafterNavigatethemeChange

升级建议

  1. 将主题更新到 v4.0.0 并清理 Hexo 缓存后重新生成站点。
  2. 检查自定义脚本是否引用已移除的旧全局变量。
  3. 使用 CDN 时确认模块入口及其相对导入文件来自同一版本和同一目录树。
  4. 对评论、搜索、音乐、友链及自定义模板执行一次完整 PJAX 导航回归。

验证

  • Hexo 侧 CommonJS 与浏览器 ES 模块语法检查通过。
  • pnpm build 通过,无 Hexo 警告。
  • 24 个生成页面中的 220 段内联脚本通过语法解析。
  • 首页、文章、归档、友链和音乐页面配置及按需模块断言通过。
  • jsDelivr、unpkg 与自定义 CDN 路径验证通过。

完整变更v3.0.20...v4.0.0