feat: restore sablog browse modes and clean imported HTML
Build and Deploy / verify (push) Successful in 40s
Build and Deploy / deploy (push) Successful in 36s

Keep the public site readable after import (nbsp, highlighter, wrapping code, compact pager) and finish the admin extras already in this tree: sticky levels, preview, page cache, and live llms.txt.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
gouki
2026-09-18 21:33:02 +00:00
co-authored by Cursor
parent 469160dc3f
commit ae47447062
98 changed files with 8618 additions and 901 deletions
+8 -3
View File
@@ -5,8 +5,11 @@
- **脚本迁移**:`php artisan sablog:import` 一键从老库迁入全部数据(文章/分类/评论/标签/友链/用户/附件),保留原始 ID,老 URL 全部 301 兼容
- **多主题**:`themes/` 目录即皮肤,后台一键切换/上传 ZIP;内置 sablog 经典风 + modern 简约风两套
- **插件系统**:`plugins/` 目录 + 钩子系统(action/filter),ZIP 安装 + 可选远程市场;启用时自动跑插件迁移
- **后台顶栏**:右上角显示当前环境(local/prod)+ 一键写文章
- **内置插件**:SEO & GEO(JSON-LD/OG/llms.txt/Markdown 导出)、AI 评论审核 + 内容润色(Workerman 异步)、支付(支付宝/微信/沙箱)、会员(套餐订阅 + 付费文章)
- **后台顶栏**:右上角显示当前环境(local/prod)+ 打开网站 + 一键写文章
- **文章编辑**:左正文 2 : 右功能 1(Slug 整行,分类/格式/状态同一行,封面在正文上方)
- **内置插件**:SEO & GEO(JSON-LD/OG)、AI 评论审核 + 内容润色(Workerman 异步)、支付(支付宝/微信/沙箱)、会员(套餐订阅 + 付费文章)
- **首页浏览模式**:和老 sablog 一样可切 **标准(全文) / 列表(摘要)**
- **Agent 索引**:`/llms.txt`、`/posts/{slug}.md` 是核心路由,随已发布公开文章实时生成
- **附件全走 S3**:R2 / COS / OSS 兼容,新上传零落盘,`attachments:sync-s3` 一键同步老附件(大文件 Multipart)
## 技术栈
@@ -59,6 +62,8 @@ php artisan sablog:import ... --convert-markdown
# 事后单独转换 / 同步附件到 S3
php artisan content:convert --all
# 已导入正文里的 &nbsp; / 高亮块 / docker 分行,可先渲染时自动清洗,也可落库:
php artisan sablog:fix-content --all
S3_ACCESS_KEY=... S3_BUCKET=... S3_ENDPOINT=... php artisan attachments:sync-s3 --legacy-dir=/path/to/old/attachments
```
@@ -118,7 +123,7 @@ php artisan workerman:serve stop
- 匿名 GET 页面整页缓存(首页/列表/文章/归档/标签等),TTL 默认 300 秒(`PAGE_CACHE_TTL`),命中时零数据库查询
- 文章浏览量由独立 `/track-view` 端点统计,不受整页缓存影响(实时)
- 后台「缓存管理」:清空页面/侧边栏/设置/全部缓存、重建编译缓存
- 后台「管理 → 页面缓存」:查看已缓存地址、命中率,清空前台或全部缓存
- 侧边栏数据与站点设置另有 1 小时缓存
## 对外 API