• v1.3.5 a82fe4ac21

    TBlog v1.3.5 Stable

    zhangpu released this 2026-08-16 10:06:07 +08:00 | 0 commits to main since this release

    TBlog v1.3.5 (2026-08-16)

    🐛 Bug 修复

    • 文章支持 iframe 嵌入:修复 include/HTMLPurifier.simple.php 把 iframe 整段删除/转义的问题,支持网易云/B站/YouTube 等外链播放器
      • 危险标签黑名单中移除 iframe
      • 标签白名单新增 iframe
      • 属性白名单新增 frameborder / allow / allowfullscreen / loading / referrerpolicy
      • URL 校验放行协议相对 URL(//music.163.com/...)
    • 在线升级后版本号同步:升级时同时更新 include/version.php(v1.3.3+ 版本号存在这里),之前只改 config.php 导致升级后版本号不变

    ✨ 改进

    • 整个后台网站名称动态化:登录页 / 首页 / 文章 / 分类 / 评论 / 设置 / 主题页的浏览器标题和侧边栏 logo 全部读 get_setting("site_name"),在网站设置里改一次全站生效
    • 移除授权系统:删除 admin/license.php、侧边栏授权入口和 150+ 行授权相关函数,TBlog 完全免费

    ⚠️ 升级提示

    • v1.3.5 之前保存的文章中,iframe 已被转义成 <iframe>,升级后需重新编辑保存该文章才能让播放器正常渲染
    • 老用户后台一键升级即可;新用户下载安装包全新安装

    完整变更:https://github.com/zhang-pu/tblog/compare/v1.3.3...v1.3.5

    Downloads
  • v1.3.7 a82fe4ac21

    TBlog v1.3.7 Stable

    zhangpu released this 2026-06-03 11:18:12 +08:00 | 0 commits to main since this release

    TBlog v1.3.7

    🔄 改进

    • 访问不存在的页面自动跳转首页:之前访问不存在的文章 / 分类 / 标签 / 路径会显示"文章不存在"的白屏文案,现在统一 302 跳转到首页
      • 覆盖所有 6 个主题:flow / paper / clay / magine / chirp / zhangpu
      • 覆盖 post / category / tag 三种内容页
      • 覆盖路由器兜底 404
      • 后台 404 保持原样(避免误跳转影响后台使用)
    • 新增全局函数 redirect_home(),headers 已发送时有 meta refresh + JS 兜底

    🐛 Bug 修复(合入自 v1.3.6 修复)

    • 修复后台删除文章提示 "CSRF token mismatch":csrf_verify('BOTH') 现在会认可查询参数里的 csrf_token(GET 链接删除场景)。同时给分类删除按钮补上了 CSRF token(之前分类删除是裸 GET,有安全风险)。
    • 修复 URL 别名带空格/特殊字符时文章/分类/标签 404 的问题:
      • 后台保存文章/分类时,别名会经过 sanitize_slug() 清理:空白、%20、+、连续特殊字符统一替换成单个 -,首尾 - 去掉,ASCII 自动小写
      • 路由器收到请求后对路径段做 rawurldecode(),老数据库里已经存了带空格别名的文章也能立即访问
      • 所有主题输出链接时用 slug_url() 做 URL 编码,中文别名 / 带空格别名的链接都不再损坏
    • 修复"检查更新失败"和"备份失败,已中止升级":
      • 升级接口多端点容错(tblog.cn / www.tblog.cn / update.json)
      • 升级前先检查 backups/ 目录存在且可写,不行就尝试自动创建
      • 备份失败时返回具体错误原因(PHP 缺少 ZipArchive / 目录不可写 / zip 为空),不再笼统报错
    • 修复旧版升级后所有文章详情页 500(Call to undefined function is_licensed()):保留兼容 shim,已删除模板中的"未授权徽章"

    🔧 开发者

    • 新增全局函数 sanitize_slug($slug)、slug_url($slug)、redirect_home()
    • generate_slug() 重构为基于 sanitize_slug()
    • csrf_verify('BOTH') 现在会读 $_GET['csrf_token']
    • 升级接口支持多镜像 fallback,可在 config.php 中通过 TBLOG_UPDATE_API 覆盖

    ⚠️ 升级说明

    • 老别名(含空格)不用改,升级后自动通过路由解码访问
    • 想彻底清理:编辑文章/分类再保存一次,会自动走新的清理逻辑
    • 升级前确保站点根目录的 backups/ 目录存在且 PHP 可写(v1.3.7 会自动尝试创建)
    Downloads
  • v1.3.3 a82fe4ac21

    TBlog v1.3.3 Stable

    zhangpu released this 2026-06-03 11:18:12 +08:00 | 0 commits to main since this release

    TBlog v1.3.3 (2026-07-16)

    ✨ 新功能

    • 存草稿/发布:发布页面新增「📝 存草稿」按钮,替换原来的状态切换
    • 在线图片:工具栏新增「🌐 在线图片」按钮,支持粘贴 URL 插入图片

    🔧 优化

    • 精简发布页面:移除模板、摘要、封面图、标签字段(数据库兼容旧数据)
    • 更新 zpic 图床配置(pic.zp.wiki → zpng.cn)
    • 修复图片上传问题

    📥 安装与升级

    • 全新安装:wget -O install.sh https://tblog.cn/install-tblog-v1.3.3.sh && bash install.sh
    • 手动升级:下载源码包覆盖,运行 /upgrade.php
    • 在线升级:后台 → 系统升级 → 检测更新(需填写官方 API)
    • 已有 v1.3.x 升级:直接覆盖文件即可,无需重新安装

    📦 下载

    Downloads
  • v1.3.2 a82fe4ac21

    TBlog v1.3.2 Stable

    zhangpu released this 2026-06-03 11:18:12 +08:00 | 0 commits to main since this release

    TBlog v1.3.2 (2026-07-10)

    ✨ 新功能

    • 未安装时访问首页自动跳转到 install.php 安装向导
    • 安装向导自动修复目录权限(不再提示手动 chmod)
    • 移除 Step 3 多余提示文字

    🐛 修复

    • 修复 /index.php 访问返回空白页的问题
    • 修复 CSRF token mismatch 登录失败的问题
    • 修复后台所有页面左上角显示硬编码名称的问题(改为显示用户设置的网站名称)
    • 修复检查更新失败的问题(补充 get_site_url() 函数)
    • 修复主题缩略图为假图的问题(替换为真实 SVG 预览图)
    Downloads
  • v1.3.1 a82fe4ac21

    v1.3.1 Stable

    zhangpu released this 2026-06-03 11:18:12 +08:00 | 0 commits to main since this release

    ✨ TBlog v1.3.1 升级版

    🎉 重大变更:
    🐛 移除在线升级的 license 限制(注册码机制已废弃),改为完全免费,所有用户均可自由升级
    🐛 修复后台点升级提示「在线升级是付费功能」的问题

    ✨ v1.3.0 原有功能:

    • 集成 v1.2.1 安装向导(5 步 Web 安装)
    • 在线升级机制
    • 后台 UI 优化
    Downloads
  • v1.2.1 2a5bdcbc4e

    zhangpu released this 2026-06-01 10:08:11 +08:00 | 1 commits to main since this release

    🐛 Bug 修复

    • ✅ 修复发布/编辑文章时 mysqli_stmt::bind_param(): Argument #3 cannot be passed by reference 致命错误
    • ✅ 修复 get_post_by_id() 在 ID 不存在时返回 null 导致上层 warning
    • ✅ 修复 get_category_by_id() 同上问题
    • ✅ 修复编辑文章/分类时的 null 防御

    ✨ 新增

    • ✅ 新增 TBLOG_VERSION 常量(include/db.php)
    • ✅ 管理后台「系统信息」新增版本显示

    📝 升级方法

    # 备份
    cp -r /www/wwwroot/your-blog /path/to/backup/
    
    # 覆盖文件(保留 config.php 和 uploads/)
    rsync -av --exclude='config.php' --exclude='uploads/' \
          TBlog_v1.2.1/ /www/wwwroot/your-blog/
    
    # 修复权限
    chown -R www:www /www/wwwroot/your-blog
    
    无破坏性改动,无需 SQL 迁移。
    Downloads
  • v1.0.0 2a5bdcbc4e

    v1.0.0 Stable

    zhangpu released this 2026-06-01 10:08:11 +08:00 | 1 commits to main since this release

    简洁优雅的开源博客系统,基于 PHP + MySQL。

    主要功能

    • ✏️ 富文本编辑器,写作体验流畅
    • 🎨 双主题切换(Flow 浅色 / Magine 深色)
    • 💬 评论系统(防垃圾评论、审核机制)
    • 🔐 安全防护(CSRF/XSS/bcrypt)
    • 📱 响应式设计,适配所有设备

    技术栈

    • PHP 7.0+ / MySQL 5.6+
    • MIT 开源协议

    安装方式

    git clone https://github.com/zhang-pu/tblog.git
    mysql -u root -p < install.sql
    # 浏览器访问 install.php 开始安装
    Downloads