更新日志
1.8.0 — 2026-10-14
- 新增 QiLog REST API(v1):标准 RESTful 资源路径 + 无状态 Bearer PAT,入口
/api、/api/v1/*。 - 公开只读:文章 / 单页 / 分类 / 标签 / 已审核评论(已脱敏)/ 媒体库。
- 需令牌:
/me、令牌列表/吊销、发文章(posts.create)、发评论。 - 令牌交换
POST /api/v1/auth/token;令牌存 optionapi_tokens(哈希),不 ALTER 表。 - 只读 scope:
read-only令牌禁止一切写操作;未知 scope 签发即拒绝。 - 个人令牌支持可选有效期(永不过期 / 7 / 30 / 90 / 365 天);过期令牌返回
401 token_expired,签发时自动清理已过期记录。 - 站点级开关 + 限流 + 每用户令牌上限(默认 3),分别在「设置 → API」与个人设置生效。
- 个人令牌在「个人设置 → API 令牌」自助管理;后台不再提供独立 API 令牌页。
- 插件/主题扩展点
api_register_routes,示例data/plugins/apidemo。 - 使用指南:
docs/rest-api-guide.md。 - 修复后台「设置 → 上传 → 缩略图尺寸」保存后回显默认值的问题(
thumb_width/height无upload_前缀,group('upload_')取不到,已显式并入)。 - 静态资源由 PHP 虚拟路由改为真实文件路径(v1.8 资源改造):移除
AssetController与/assets/theme|plugin|core虚拟路由,主题/插件/后台样式改为磁盘真实文件,由 Web 服务器直出。 - 主题统一归入
data/themes/(default内置主题也从app/resources/themes/迁入,app/resources/themes/目录已删除);default列入BUILTIN_THEMES常量受删除保护。 - 真实路径:
data/themes/{名}/assets/*、data/plugins/{名}/assets/*、app/resources/assets/*;nginx 规则改为「三目录白名单放行 + 其余data/一律 deny」(nginx.htaccess已同步,宝塔/面板须将「完整安全版」整段贴进伪静态)。 theme_asset()成为唯一缓存戳来源(自动附加?v=filemtime);修复 4 个主题_head.php重复追加?v=导致双戳的 bug。- 修复 moments 皮肤静态资源(
skinAssetUrl)仍走旧assets/theme/{名}/...虚拟路由、在改造后 404 的遗漏问题。 -
市场发布不再剥离主题封面/截图,已安装主题本地自带缩略图;新增
tools/fetch-theme-covers.php为老站回填封面。 -
版本号升级至 1.8.0。
- 更新分发服务器迁移至
https://blog.qilog.cn/download(原demo.qilog.cn)。 - 增量包(更新包)下限提升为 1.8.0:低于此版本的旧站不再提供自动增量升级,请下载完整包手动覆盖安装;此后新版本自 1.8.0 起制作增量包。
- 后台主色调调整为青蓝
#3082AB(亮#3D96C2/ 深#246B8F),左侧菜单未选中项鼠标悬停改为同色淡蓝底,整体更醒目、不发灰。 - 品牌标识更新:QiLog 标记改为「圆角方块 + 上尖角」矢量造型(扁平纯色,无渐变),随包提供多尺寸透明 PNG 与矢量 SVG;字标保持中性深灰
#3C424E。 - 后台登录页新增「保持登录(记住我)」:勾选后会话有效期 14 天,并豁免后台空闲超时;验证码改用真实字号渲染(字面约放大 1.7 倍,更易辨认)。
- 站点图标:随包提供多尺寸
favicon.ico(16 / 32 / 48 / 64),并在安装向导、登录页、后台 layout 显式声明<link rel="icon">,子目录安装同样生效。 - 修复安装向导左侧 LOGO 因浏览器缓存仍显示旧图的问题:图片地址统一附加
?v=filemtime版本戳,换图即时生效。 - 打包规则收紧:项目根目录的压缩包(
*.zip)、Markdown 文档与许可证文件不再进入分发包。 - 微语(moments)插件皮肤架构重构:插件发布包只含原版经典皮肤;当激活主题的
theme.json声明moments_skin且主题目录自带moments-skin/皮肤文件时,自动启用主题配套皮肤(皮肤随主题分发,缺一回落经典)。后台设置仅保留「自动(跟随主题)/ 经典」两档。 - 微语经典皮肤:图片按宫格显示、点击全屏灯箱放大,单图不再铺满整行。
- Postcard 主题改为官网单独下载,不再随 1.8.0 包发布(打包白名单移除)。
- 前台首页时间线(Postcard 主题):刊头下胶囊行改为系统菜单驱动(后台「菜单」header 位置,未配置自动回退分类),当前页高亮 + 指示器跟随动效;微语卡片白底横图与文章卡协调、纯文字卡宽度自适应;「先读这三页」摘要 3 行截断。
- 全站滚动渐入动效:视口下方内容 40px 上浮 + 淡入(一次性、同屏错峰,尊重
prefers-reduced-motion)。 - 修复 404 页「搜一搜」按钮因 margin 残留导致的两按钮未对齐;页脚 QiLog 字样指向官网。
-
唯一起点 v1.8.0(时间线抹平):移除
Upgrader全部 1.8.0 之前版本迁移条目(qilo / qiblog / QiLo / QiBlog 时代的数据库精简、插件表转 option、微语移除、死表 DROP 等),并新增「低于 1.8.0 直接拒绝升级」基线守卫;清除旧品牌名兼容串——备份文件名正则仅保留qilog-前缀、调试开关仅保留QILOG_DEBUG、构建增量包扫描仅qilog-*.zip;data/config.sample.php默认库名由qilo改为qilog(前缀qilog_,新装默认不变)。1.8.0 之前版本不再兼容、不再维护、不再迁移。 -
安装器新增「已存在表检测 + 清空覆盖」:步骤 2 提交后查询
information_schema按前缀检测目标库是否已有 QiLog 核心表,有则在数据库页红字提示并强制勾选「清空并覆盖」方可继续;确认页二次告警;勾选后doInstall先DROP已知核心表再重建,避免旧数据撞users.uniq_username/options主键导致安装失败卡死。
1.6.4 — 2026-10-13
- 版本号升级至 1.6.4。
- 修复:虚拟主机(宝塔等)将
shell_exec/exec列入disable_functions时,启用插件因SafeLoader语法预检裸调shell_exec致命报错(Call to undefined function ...shell_exec())。现改为调用前function_exists判断,不可用则按设计静默放行(不回归);ThemePluginService的子进程建表兜底同步加可用性判断。 - 新增主题资源 helper
theme_asset($file, $theme = null)(app/Kernel/functions.php),统一输出assets/theme/{名}/{文件}路由并自动附加?v=filemtime缓存戳;内置主题(app/resources)与用户主题(data/themes)解析顺序与AssetController对齐;默认主题、prism、minimal 的_head.php已改用该 helper。 - 调整 WangEditor 插件:移除后台「主题强调色」与「图片以 Base64 内联」两项设置,图片上传固定为真实上传(进媒体库、可追踪引用),编辑器呈官方出厂中性灰外观。
- 安装器完成页改进:按服务器类型(Nginx / Apache / 未知)展示对应伪静态规则代码块(带复制按钮)与操作指引;强化「登录后台 / 访问前台」访问选择;安装完成后自动删除根目录
install.php与Install.php入口文件(app/Installer保留,属运行时依赖);随包nginx.htaccess同步为三目录白名单加固版。 - 修复:通过根路径(前控制器
index.php)安装时,完成页跳转/?step=done被isInstalled()门禁拦截、直接落到首页导致完成页不显示。现前控制器在已安装但带?step参数时仍交由安装器处理;selfUrl()经前控制器进入时跳转目标指向独立入口install.php,保证完成页正确渲染。
1.6.3 — 2026-10-09
- 新增「闪念 · 微语」插件(moments):随手记录一闪而过的想法,对标 flomo / Memos 的轻量时间线。
- 前台独立页
/moments:不继承主题页头页脚的独立排版,切换主题不影响样式;页头头图 + 压图头像(后台可自定义),底部 QiLog 版权与版本号。 - 后台管理页:左侧「扩展」分组新增「闪念」入口(仅管理员),发布器 + 列表管理(编辑支持改文字与图片增删、删除、公开/私密切换、话题筛选、分页)。
- 记录能力:Ctrl+Enter 快捷发布、
#话题自动解析可点、图片 1~9 张(走媒体库并登记引用计数)、实时字数统计。 - 互动:游客点赞(cookie 防重复)、游客评论(直接显示,管理员悬停可删)、相对时间展示(x 分钟前)。
- 可见性:每条可选公开 / 私密,私密仅登录管理员可见(前台、评论区、JSON 端点全链路过滤)。
- 新装站点启用插件即自动建表(
{prefix}moments/{prefix}moments_comments);停用或删除插件不会动表数据。 - 预置插件调整:移除
qilog-dashboard-widgets(仪表盘小组件)预置插件。
1.6.2 — 2026-10-08
- vivia 主题配色增强:新增「石墨灰」男性化配色(低彩度硬朗灰调,色相 250 彩度降至 0.05);后台「主题设置 → 配色 → 主色相」下拉选中即显示对应颜色块预览。
- 主题默认明暗改为亮色:新装站点默认亮色(访客切换到暗色后本地记忆优先,不强制)。
- 前台主题设置面板改进:主色相行增加实时颜色块,预设补齐石墨灰等色相,拖动滑块或点预设即时刷新。
- 修复换肤不同步:修复后台修改主色相后前台不生效的问题(访客浏览器 localStorage 旧值无条件覆盖后台默认),改为仅访客主动改过后才覆盖后台默认,未自定义访客即时跟随后台设置。
- 后台更新与升级体验优化:更新页、更新内容展示、升级应急与恢复入口、一键升级区块交互打磨与若干修复;仪表盘与设置页细节修复。
- 默认主题(default)整体打磨:头部导航向下滚动时收缩、上拉保持、接近顶部才回弹,收缩态底部出现一条浅灰细线与正文区隔;文章列表鼠标悬停显示浅色底块(外扩但不位移,分隔线不跟随)。
- 详情页头图改版:文章 / 单页的头图与首页共用同一张图(后台「头图图片」只填一次),标题、面包屑、日期 / 阅读时长 / 阅读数直接压在头图上;头图留空则整体回退到「标题在正文上方」的旧版式。
- 首页头图与归档页统一:首页头图标题、描述支持多行(后台按行输入);分类 / 标签 / 按月归档页的标题块上移到头图,并与首页头图同款式(左对齐、垂直居中)。
- 阅读排版三档可调:正文阅读宽度 760 / 820 / 1000(文章页与单页统一),整页宽度 960 / 1040 / 1100;正文含 h1~h4 时右侧显示浮动目录,滚动高亮当前章节,窄屏自动变为右侧抽屉。
- 评论区重做:由整行三层堆叠改为「头像 + 内容」两栏紧凑式,回复按钮悬停浮现,嵌套回复加缩进与引导线。
- 侧边栏与页脚:侧栏组件(分类目录 / 归档 / 文章列表)的数量靠右对齐;页脚新增「建站时间」,显示「本站已运行 X 天 X 时 X 分 X 秒」并逐秒跳动;备案号、建站时间、返回顶部合并进「页脚」设置组。
- 主题设置去重:页眉分组精简为「头图图片 / 首页头图高度 / 文章页头图高度 / 头图标题 / 头图描述」5 项,移除渐变色样式与重复的显示开关。
1.6.1 — 2026-10-02
- AI 工具箱设置页统一入口:后台「插件 → AI 工具箱 → 设置」即为完整设置页(连接状态、文本/配图服务、用量统计、提示词模板);裸
/admin/ext/ai-tools自动跳转到该页,不再有两套设置界面。 - AI 配图支持独立服务商:新增「图像服务商 Base URL」「图像 API Key」两项 —— 对话与出图可以是不同厂商(例如对话用 DeepSeek、出图用阿里百炼),修复此前出图请求打到对话地址导致 404 的问题。
- 修复百炼生图偶发网关 504:阿里百炼生图统一改走「异步提交 + 轮询查询」,不再使用会超时的同步接口,也避免 PHP 单请求超时。
- 出图尺寸可自由配置:「出图尺寸」改为文本填写,并新增「常用尺寸」清单(每行一条
宽x高|显示名);编辑器配图面板的尺寸快捷按钮按该清单渲染,不再写死三档。留空则回退内置「方 1:1 / 竖 9:16 / 横 16:9」。 - 一次生成 1 / 2 / 4 张图:编辑器配图面板的「生成张数」下拉恢复可用。因阿里百炼图像接口单任务只出 1 张,插件改为自动拆分为多个任务并行生成后再合并展示;OpenAI 兼容接口仍按单次请求出多张。
- 配图面板排版微调:生图描述框与写作区文本框调整为同一高度(约 4 行),正文与占位文字统一为浅灰色阶;「生成张数」下拉收窄,不再挤占尺寸按钮。
- 后台媒体库:卡片「容量 · 尺寸」副文本改用更浅的灰,不再与文件名抢视觉。
- 文章 / 单页发布侧栏:「分类」「模板」标签字号与「置顶」对齐(13px → 14px)。
- 固定链接预览:文章
{slug}虚线输入框加宽(6ch → 12ch),长别名不再被挤成两行。 - 更新提示更醒目:仪表盘的「发现新版本」图标与后台更新页的版本胶囊改为实心主色底 + 白字,对比度由 1.39:1 提升到 4.63:1,不再糊在背景里。
- 更新页整体重排:版面重写为「版本头图 → 更新内容(新版本 / 累计更新两级)→ 环境检查网格 → 更多操作」四段;「分步操作 / 手动升级 / 升级应急与恢复」三块改为带色标的独立面板,不再挤成一团。「忽略此升级」按钮移到新版本号右侧,就近可点。
-
修复:更新页状态检查返回的 JSON 片段此前用
innerHTML注入,片段内<script>不会执行(潜在隐患),改为原地显式绑定,操作按钮可重复绑定不失效;更新内容的历史条目此前 Markdown 标记裸露(**加粗**、`代码`原样显示),已按 rich 规则渲染。 -
升级成功醒目提醒:覆盖升级成功后,更新页顶部自动展示「升级成功 · v1.6.1」横幅卡片(勾选描边动画 + 版本徽标 + 更新文件数 / 备份路径信息 chip),点「我知道了」即时消除(经
notice-dismiss接口,无需整页刷新);同时复用后台已有 toast 作二次轻提醒,二者互补。 - 升级应急与恢复入口整理:后台更新页「升级应急与恢复」面板重写 —— 自检 URL 改为单行截断 + 一键复制的紧凑条,回滚 / 清标记 / 关维护模式三个动作改为带图标的说明小卡片,不再用裸链接堆砌,操作区沿用悬停显形 + 细边框风格。
1.6.0 — 2026-09-30
- 品牌更名:QiLo → QiLog。全仓词根统一(
qilo→qilog),三态有序替换(QILO/QiLo/qilo),涵盖后台与主题文案、安装器、错误页、邮件头、插件与主题元数据、开发文档与构建工具。 - 更新源与分发域名:改为
qilog.daxiaoxi.cc;新产完整包顶层目录为qilog/,产物命名qilog-X.Y.Z.zip。⚠️ 存量站点(≤1.5.6)的更新源仍指向qilo.daxiaoxi.cc,该地址需继续维护 update.json 才能收到更新。 - 向后兼容(历史,已于 v1.8.0 移除):1.6.0 当时备份文件识别同时接受
qilo-/qilog-/qiblog-三种前缀、调试开关兼容QILOG_DEBUG/QILO_DEBUG/QIBLOG_DEBUG、构建增量包扫描接受qilo-*.zip与qilog-*.zip旧包;上述兼容已在 v1.8.0 抹平时间线时全部清除。 - 数据库零迁移:库名与表前缀保持
qilo/qilo_不变(仅品牌层更名),老站无需建库或改 config.php。 - 内置插件目录更名为
qilog-dashboard-widgets(目录名、ajax 路由、内置清单与打包清单同步)。 - AI 工具插件命名空间由
QiLoAiTools更名为QiLogAiTools;编辑器跨插件约定window.__qiloEditor更名为window.__qilogEditor(wangEditor 暴露 / AI 工具与文章编辑页读取三处同步)。 - 历史版本条目、历史更名文档与旧包名引用保持原样,不改写历史事实。
1.5.6 — 2026-09-28
- 分类模板能力(分类归档模板 + 文章模板级联):分类编辑新增「分类归档模板」「该分类文章模板」两个下拉;分类归档页可用
archive-*.php变体覆盖默认archive,分类下文章在自身未指定模板时自动继承该分类的post-*模板。数据库categories表新增template/post_template两列(升级脚本 1.5.6 幂等补列)。
1.5.5 — 2026-09-28
- 后台左侧菜单恢复手风琴:点击 / 回车 / Space 开合,一次只展开一组、可全部收起;分组标题与菜单项行高调整(分组标题 44px、菜单项 40px)。
- ⌘K 命令面板修复与体验优化:修复面板搜不到左侧菜单(菜单数据未注入
$shell);占位文案改为「搜索页面或操作…」,⌘K提示按平台显示(macOS 显示 ⌘K,其余系统显示 Ctrl K)。 - 分类 / 标签 / 菜单三页形态优化:分类描述改为独立列;分类、文章列表的操作列统一前移到名称 / 标题之后。
- 文章回收站复活(修复死功能):列表新增「移入回收站」操作,回收站视图提供「恢复 / 彻底删除」,批量栏按视图切换,后台单页开放回收站页签;「移入回收站(可恢复)」与「彻底删除」语义明确区分。
- 列表批量栏重排:「移入回收站 / 恢复选中」前移到搜索框左侧并改为亮色主按钮,移除「取消选择」按钮;彻底删除保持中性灰。
- 设置页导航改为左侧竖排卡片:对齐 settings-tabler.html 参考设计,分组以左侧竖排卡片呈现(208px + 1fr),面板头补充副标题。
- 系统备份类型列去重:数据库行只保留「数据库」胶囊,移除与胶囊重复的「数据库备份」文字;上传恢复的源文件名移入胶囊
title悬停可见。
1.5.4 — 2026-09-27
- ⌘K 命令面板:全局快捷键(⌘/Ctrl+K)唤起命令面板,列出所有可见后台页与快捷动作(访问站点首页、退出登录),支持模糊过滤、↑/↓ 键盘导航、Enter 跳转、Esc 关闭。
- 后台页面面包屑 + 副标题:页面头部由菜单结构反查分组/标签生成面包屑,各页补充语义化副标题(如仪表盘「站点概览与快捷入口」),层级更清晰。
- 列表表头吸顶(sticky thead):文章 / 页面 / 评论 / 用户等列表表头改为 sticky,滚动时吸附在顶栏下方;卡片容器以
overflow:clip替代overflow:hidden,兼得圆角裁切与吸顶效果。 - 后台媒体 / 菜单 / 挂件改为无刷新交互:媒体上传与删除、菜单新建 / 改名 / 删除 / 条目保存 / 拖拽排序、挂件坑位保存 / 删除 / 添加组件,全部改为
fetch原地提交并即时反馈,不再整页刷新。后端menuSave/menuDelete/menuItemSave/menuItemDelete/themeWidgetManage新增X-Requested-With:fetch的 JSON 分支,普通表单提交仍走原跳转,向后兼容。
1.5.3 — 2026-09-27
- 后台侧栏分组默认全部展开(取消手风琴折叠):原先仅当前所在分组自动展开、其余收起,切换页面时侧栏会「跳变」且看不清自己处在哪一组。现所有分组常显为静态标题,去掉可点击折叠态(移除箭头、
cursor恢复默认),rail 折叠态下的 hover 浮出子菜单仍保留。 - 后台内容区最大宽度上调至 1280px 并水平居中:原内容区封顶 1200px 且左对齐,宽屏下右侧留白过大、视觉重心偏左。现
.content改为max-width:1280px; margin:0 auto,宽屏下内容居中、阅读宽度更舒展。 - 评论审核改为原地更新(不再整页刷新):单条评论的「通过 / 待审核 / 垃圾 / 删除」与批量删除,由原生
confirm+ 整页跳转改为统一的全局确认框(confirmAction)+fetch提交,成功后原地刷新状态徽章、页签计数与回复链接,无刷新闪烁。
1.5.2 — 2026-09-27
- 后台「设置」页字段改为统一的「标签左 / 控件右」两列排版:原先标签与输入框上下堆叠、且各组间距不一,纵向参差不齐。现所有分组的所有行共用同一套两列网格 —— 左列固定宽度放标签,右列放控件与其说明文字,标签列宽按各分组最长标签实测设定(基本信息/固定链接 108px、阅读 124px、邮件通知 132px、全局设置 164px、上传/评论 192px),标签过长只会折行、不会挤压控件。
- 设置页开关项并入同一套两列网格:开关行原为「开关在左、标题在右」的独立结构,与字段行不成体系。现开关的标题同字段标签一样落在左列、开关本体落在右列,与输入框对齐成同一条竖直分界;开关说明文字(
switch-sub)与字段提示(field-hint)统一落在右列控件下方。左列只放标签、右列放控件与说明,全表左右边界整齐一致。 - 设置页行距放宽一档:字段组 / 内联组 / 开关组的行间距统一为 20px(原 14px),控件与说明之间 10px、开关标题与说明之间 8px,缓解此前偏密的观感。
- 窄屏(≤ 880px)自动回落为「标签在上 / 控件在下」的堆叠式,开关恢复原始「开关在左 / 文字在右」,移动端不受影响。
- 作用域严格限定在设置页(
.settings-form):主题设置、个人资料、插件设置页不受影响。 - 后台「标签管理」保持胶囊 + 模态形态:上一版曾将其与分类管理统一为双栏内联表单,经实际使用后决定回退至原有的胶囊排列(标签以流式胶囊展示,含关联文章数、悬停显示编辑/删除,「添加标签」通过模态弹窗完成)。分类管理仍为双栏布局,两者按各自最合用的形态保留。
1.5.1 — 2026-09-26
- 新增数据写入钩子(对齐 Typecho / Z-Blog 的扩展能力):
app/Kernel/Hooks.php原有 15 个扩展点全部是输出/UI 注入侧,插件只能做「展示类」。本次在写入路径补 5 个钩子,使「业务类」插件成为可能: post_data(filter,入库前过滤文章数据,创建/更新通用,插件可增改字段后返回)post_save(action,文章创建/更新入库后触发,用于第三方同步、通知、自动处理)post_delete(action,文章物理删除后触发,用于级联或外部同步)comment_data(filter,评论入库前过滤,插件可改写正文/状态/作者等字段)comment_save(action,评论入库后触发,用于反垃圾、通知、外部同步)- 文档
docs/hooks.md由 15 个扩展点增至 20 个,新增「数据写入」分类;tools/gen-hook-docs.php的分类函数同步新增该分类。 - 正文存储修复(此前未单独发版,随本版一并发布):
- wangeditor 富文本插件停止向
content_md重复写入 HTML(content_md仅保留真 Markdown 源),消除 79% 文章的字段语义污染;插件版本 1.0.0 → 1.1.0。 - 后台摘要源改为
content_html优先,避免富文本文章摘要为空。 AdminController::postSave新增编辑器守卫:富文本文章被 Markdown 编辑器打开后误保存时拦截并提示,避免正文被清空(丢数据)。- 三册开发手册补
content_md契约说明,并修正两处错事实(content键名 / 字段名表述)。 - 新增
tools/cleanup-content-md.php(默认 dry-run,对旧数据中content_md与content_html完全相等的 15 篇可一键清理,运行前强制备份);删除引用已废弃post_contents表的死脚本tools/repair-content-html.php。 - 文档修正:
docs/QiLo-产品介绍.md更新版本号、移除已取消的「计划任务」描述、修正内置主题名与配色表述,与 1.5.x 现状对齐。 - 修复默认 Markdown 编辑器引用块前台不渲染:内核
Markdown::toHtml先对全文转义、再匹配行首>引用语法,导致>被转义成>、引用块永不生成、前台引用项无效果。已修正正则兼容转义形式,并对存量含引用语法的文章一次性重算content_html。 - 后台「分类管理」改为双栏布局:左侧常驻分类树(层级树线 + 折叠箭头 + 悬停显操作 + 选中左侧强调条,行高恒定不抖动),右侧内联编辑表单(点节点即载入)。父级下拉改为树序缩进选项,修复原扁平下拉无层级、顺序错乱的问题。
- 后台「评论管理」改为列表式布局:由表格式多列改为每条评论独立块(彩色首字头像 + 主体三行 + 右侧状态徽章/时间),操作悬停显现且不抖动;新增评论搜索(按作者/内容)。
- 修复后台 Markdown 编辑器预览态缺少右侧滚动条:编辑器与预览面板改为各自确定高度、独立滚动,编辑/分屏/预览三种模式均稳定出现滚动条。
1.5.0 — 2026-09-26
- 品牌更名:QiBlog → QiLo。全仓词根统一(
qiblog→qilo),涵盖库名/表前缀、备份文件名、内置插件目录、内部标识、后台与主题文案、开发文档与设计稿。 - 数据库默认值更新:默认库名
qilo、默认表前缀qilo_(老站沿用各自 config.php 中的既有前缀,不受影响)。 - 更新与分发改为新域名
qilo.daxiaoxi.cc;完整包顶层目录改为qilo/,产物命名为qilo-X.Y.Z.zip。 - 向后兼容:备份列表/下载/恢复/删除同时接受
qiblog-与qilo-两种历史文件名;调试开关同时兼容环境变量QIBLOG_DEBUG。 - 内置仪表盘小工具插件更名为
qilo-dashboard-widgets(目录名与路由同步)。 - ⚠️ 升级政策变更(本版起):v1.5.0 是「QiLo」的起点,也是自动升级(增量包)的下限。低于 v1.5.0 的老站不再提供更新包,请下载
qilo-1.5.0.zip完整包手动覆盖安装升级;升级完成后,后续版本(1.5.1 起)即可恢复后台一键升级。 - 兼容性提示文案修正:站点版本低于自动升级下限、且目标版本本身即为该下限时,不再显示「请先升级到 X 再升级到 X」这类无解的循环提示,改为直接提示下载完整包手动安装。
- 站点设置页移除「计划任务」标签:该区块只是说明性内容且与仪表盘「系统环境」重复,其中「邮件队列待发 / 立即发送队列邮件」与可选的定时任务地址已精简合并进「邮件通知」面板,设置页由 8 个标签回到 7 个。
1.4.6 — 2026-09-26
- 前台文章代码块支持语法高亮(内置 highlight.js,仅页面含代码块时按需加载,明暗主题自动跟随)。
- 修复代码块首行语言标记(如 ```php)被当作代码正文显示的问题,语言现在转为代码块的 class 供高亮使用。
- 新增主题静态资源公开路由 /assets/theme/{主题名}/{路径},支持插件与主题分发自有 JS/CSS 资源。
- 后台编辑器预览与前台渲染口径同步(代码块语言解析一致)。
本文件的格式由
tools/build-release.php解析:打包时自动读取与当前版本号匹配的段落, 生成dist/update.json里的changelog字段。请严格保持以下书写规范:
- 每个版本一个二级标题,格式固定为
## {版本号} — {YYYY-MM-DD}(—为 em dash,两侧各一个空格)- 更新内容用
-开头的无序列表,一条一行,用用户能看懂的话描述(不要写 commit message)- 最新版本放最上面(倒序)
- 标题行下方到下一个
##之间的-条目就是该版本的更新内容- 中文标点,条目以句号结尾;不加序号、不加子列表(打包器只取第一层列表项)
⚠️ 发布新版本时必须在本文件顶部新增段落,否则打包器会因「找不到当前版本段落」而告警。
1.4.5 — 2026-09-26
- 插件依赖与加载顺序标准化:plugin.json 的 depends 声明依赖,启动期按拓扑排序装载(被依赖方优先),依赖未启用则跳过并后台告警,sort 仅作同层兜底,循环依赖自动跳过。
- 主题开放前台路由注册:主题 functions.php 与插件共用 front_register_routes 扩展点,可注册游客可访问的公开网址,消除主题/插件两套体系割裂。
- 后台插件列表新增启动期装载告警提示(依赖缺失 / 循环依赖)。
- 同步插件开发参考与主题开发参考文档:补充依赖声明、加载顺序与主题前台路由章节。
1.4.4 — 2026-09-26
- 新增插件生命周期回调标准化:启用/停用时自动触发 bootstrap.php 中的 ActivePlugin_{id} / DeactivatePlugin_{id}(可选 UpgradePlugin_{id}),用于建表与清理。
- 新增主题生命周期回调标准化:启用/切换时自动触发 functions.php 中的 ActiveTheme_{id} / DeactivateTheme_{id},用于初始化与清理。
- 新增评论反垃圾链接数阈值:游客评论正文链接数 ≥ 阈值(默认 3,后台可配,0 关闭)自动转入「垃圾」,降低人工审核负担。
- 后台「设置 → 评论」新增「链接数阈值」配置项。
- 补充插件与主题开发参考文档(docs/plugin-dev-guide.md、docs/theme-dev-guide.md),列出钩子清单、生命周期约定、配置/资源/前台路由与目录结构。
1.4.3 — 2026-09-26
- 修复升级站点搜索功能 500:搜索 SQL 改为自表匹配 content_md / content_html,不再引用已删除的 post_contents 表。
- 修复升级站点附件引用计数 500:统计 SQL 改为单表查询 posts,不再 JOIN 已删除的 post_contents 表。
- 清理已下线友情链接(links)功能的孤儿组件:移除默认主题 widget 声明与 orphan 文件。
- 清理死代码:删除 PostService 无调用者的 metaValue / deleteMeta 方法,内联 slugifyTag 透传。
- 合并 Markdown 渲染中双引号与单引号 URL 属性净化逻辑为单条正则,行为不变、降低重复。
1.4.2 — 2026-09-25
- 后台 Markdown 编辑器增强:标题下拉菜单扩展到 H1–H6,并调整到加粗按钮之前。
- 新增任务列表按钮,支持将选中的多行文字一键转为待办项,无选中时插入模板。
- 修复删除线在前台不生效的问题,内核渲染补全
~~文本~~转<del>。 - 表格按钮接入插入功能,前后台均支持 GFM 表格与任务列表渲染。
- 标题下拉改为悬停容错 + 点击触发,避免鼠标未触达就消失。
1.4.1 — 2026-09-24
- 数据库大精简:23 张表收敛为 8 张核心表(文章、分类、标签、文章标签、评论、附件、用户、选项),向 Z-Blog/WordPress 的精简结构看齐,安装与备份更轻。
- 文章正文与扩展元数据并入文章表,后台与前台使用方式完全不变。
- 导航菜单、插件启用状态、站点访问统计改存于站点选项,功能不变;导航菜单支持分类改名/删除自动同步。
- 邮件发送队列改为文件队列,待发邮件在后台升级时自动迁移,异步发送与重试机制保留。
- 数据库备份改为文件派生管理,不再依赖数据表;下载、恢复、删除功能不变。
- AI 用量统计改为本地 JSONL 文件记录,历史用量自动迁移。
- 移除友情链接功能与微语(动弹)插件及全部相关数据表;友情链接数据已自动导出存档,后续将以插件形式回归。
1.4.0 — 2026-09-24
- 一键升级:把原来「检查更新 → 准备 → 差异预览 → 确认 → 覆盖」的多步操作合并成「一键升级 + 一次确认 + 阶段进度」,差异预览改为可展开的详情;习惯精细操作的用户仍可在「分步模式」中逐步执行。
- 增量升级包:升级时优先只下载版本之间真正变化的文件,升级包体积从约 2.2 MB 降到几十 KB,下载与校验更快;若当前版本没有对应的增量包,会自动回退到完整包。
- 覆盖后自动体检:覆盖完成后自动验证新版本核心文件是否真的生效、前台能否正常打开,一旦发现异常会明确告警。
- 紧急自救入口:后台升级页会显示一个带密钥的自救地址,即使升级后后台进不去,也能在浏览器里直接回滚到覆盖前、清除升级标记、关闭维护模式。
- 自动更新策略开关(默认关闭):可选择在覆盖自检发现异常时自动回滚到覆盖前;默认仅做诊断、不自动回滚,也不会代替你确认升级。
- 更新页更清爽:后台「检查更新」页只显示前两条更新说明,安装包、校验值与手动覆盖步骤一并收进「手动升级(备用)」折叠区,主流程只剩一键升级。
1.3.9 — 2026-09-24
- 修复覆盖升级的一个严重隐患:文件其实已经全部覆盖成功,但收尾时清理旧备份一旦出错,后面的「关闭维护模式、清除中断标记」就被整段跳过,导致前台一直卡在 503 维护页,只能手工处理才能恢复。现在清理旧备份即使失败也不影响升级结果,维护模式与中断标记保证被执行恢复。
- 修复「清理升级标记」按钮点了之后前台仍打不开的问题:该按钮现在会一并把维护模式恢复到覆盖前的状态,真正起到解锁作用。
- 手动回滚、以及覆盖失败时的自动回滚,中途若出错也保证关闭维护模式,不会让一次小故障升级成整站无法访问。
1.3.8 — 2026-09-24
- 修复「回滚到覆盖前」入口在升级完成后消失的问题:覆盖成功后站点即变为「已是最新」,而该入口原先只在「有更新」时渲染,于是升级刚完成就再也找不到回滚入口。现在只要有覆盖备份,无论是否已是最新都会显示回滚入口。
- 升级中断告警同样不再依赖「有更新」状态,异常中断后即使站点显示最新也能看到告警并一键恢复。
1.3.7 — 2026-09-24
- 修复「回滚到覆盖前」入口在部分虚拟主机不显示的问题:覆盖备份已正确生成,但读取侧用了 glob(),在 open_basedir 限制下返回 false 而非数组,导致有备份却列不出来。改用 opendir/readdir 枚举(与覆盖写入侧一致),回滚入口在虚拟主机环境也能正常出现。
1.3.6 — 2026-09-24
- 版本对齐:后台页脚与「内核」标识同步到 v1.3.6。
- 一键升级「真正覆盖升级」(3b)完成线上真机验证:检查更新、下载校验、差异预览、立即覆盖升级、回滚到覆盖前,全链路在真实站点跑通。
- 升级流程稳定性加固:覆盖期间维护模式、单文件按目录结构备份、中断自动回滚,均经实战确认。
1.3.5 — 2026-09-24
- 一键升级新增「立即覆盖升级」:准备好之后可一键把新版本代码真正写到站点,全程自动开启维护模式、逐文件单文件备份,覆盖过程可随时回滚。
- 新增「回滚到覆盖前」:覆盖后若出现意外,可用最近一次单文件备份一键还原,且只还原被改动的文件,不会动你的主题、上传等用户数据。
- 覆盖中途若被中断(超时、进程被杀),会自动用备份还原到覆盖前状态,不会出现「新旧代码各一半」的损坏站点。
- 修复升级准备阶段「未完成」标记会误锁住后续操作的问题,清理暂存后即可正常继续升级。
1.3.4 — 2026-09-23
- 一键升级新增「差异预览」:覆盖前可逐文件查看哪些会被新增、哪些会被改写、哪些其实没变,做到明明白白再升级。
- 升级准备期间会在中途留下「未完成」标记,若上一轮升级被中断,再次进入时会明确提示,不再假装状态干净。
- 代码备份不再打包开发用目录,备份体积大幅减小,备份更快、更省空间。
- 修复点击「检查更新」后升级环境检查结果消失的问题。
1.3.3 — 2026-09-23
- 后台新增「检查更新」功能:检测到新版本时在仪表盘与顶部通知中提示,可查看更新内容并下载安装包。
- 修复部分虚拟主机因缺少证书库导致外部 HTTPS 请求失败的问题。
- 后台顶部铃铛改为常驻显示,待审核评论、待审核文章与系统更新都会显示对应数字提示。
- 「检查更新」页新增一键升级准备:自动检查运行环境、下载安装包并校验完整性、备份当前代码,全程不会覆盖你的任何文件。
1.3.2 — 2026-09-23
- 重构数据库升级机制:新增字段与数据表改由版本迁移统一处理,升级过程更可靠。
- 修复部分站点升级后偶发「字段缺失」报错的问题。
- 精简分发包体积,不再携带开发用的构建脚本与临时文件。
1.3.1 — 2026-09-23
- 修复后台导航菜单编辑时,分类与单页条目被错误识别为「自定义链接」的问题。
- 单页列表支持批量删除。
- 修复微语页点赞与评论需要点击两次才生效的问题。
- 微语页关闭评论后,底部不再残留空白评论区。
1.3.0 — 2026-09-22
- 新增「微语」插件:独立的时间线页面,支持游客点赞、评论与图片上传。
- 媒体库新增引用统计:删除被使用的图片前会提示引用次数,避免误删导致前台裂图。
- 新增 Vivia 主题(日间/夜间模式、自定义主色调、多种布局选项)。
- 支持插件注册前台公开接口(游客可访问的点赞、评论等)。
1.2.0 — 2026-09-20
- 新增组件(Widget)体系:主题可提供自己的组件片段,后台可视化配置坑位。
- 后台新增主题管理、插件管理与菜单管理。
- 新增邮件队列:评论通知等邮件异步投递,避免拖慢页面响应。
- 游客评论统一进入待审核,审核人即时收到通知。
1.1.0 — 2026-09-15
- 后台界面改版:仪表盘重建,支持区块显隐与待办便签。
- 新增 WangEditor 富文本编辑器插件。
- 新增 AI 工具插件(接入大模型对话与图片生成)。
- 新增站点备份与恢复功能(数据库层面)。
- 定时发布支持外部计划任务触发。
1.0.0 — 2026-09-10
- QiLo 首个正式版本。
- 文章、单页、分类、标签、评论、媒体库、友链、用户与权限的完整后台管理。
- 零依赖部署:只需 PHP 与 MySQL,无需 Composer,可直接上传虚拟主机运行。
- 内置 Markdown 渲染、伪静态固定链接、RSS 与站点地图。
