一、界面一致性
1. 按钮圆角统一
此前三套圆角并存:首页 hero 按钮 8px、站内按钮 2px、侧栏标签 999px 胶囊。
做法:新增 --btn-radius: 8px 变量,只作用于按钮类控件(登录按钮、导航项、汉堡按钮、弹窗关闭、下载按钮、文章标签、侧栏分类项、标签云、首页 hero 按钮与小标签)。卡片、输入框、代码块仍保持 --radius: 2px。
2. 当前分类高亮
侧栏「二级分类」给当前项加 is-active 与 aria-current="page":加深底色、名字加粗、左侧 3px 黑色竖条,和 hover 状态明确区分。打开「随笔」时高亮随笔,切到「日志」时自动跟随。
3. 区块标题统一
归档标题与左右侧栏标题原本各写一套:24px 无下划线、15px 带 10px 下划线、外加皮肤层再次覆盖。
现在合并为一条规则:16px / 600 字重 / 行高 1.5 / 下内边距 12px / 1px 下边框。三栏顶部内边距同为 40px,因此三条下划线严格落在同一条水平线上。
二、全局面包屑
新增 breadcrumb.php,由 header.php 在页头下方引入,全站自动生效:
- 分类页:首页 / 博客 / 开发
- 文章页:首页 / 博客 / 开发 / 文章标题
- 独立页面:首页 / 注册
- 首页(工作室版)不显示
分类祖先链通过 metas 表的 parent 字段回溯,最多 10 层,防止成环;链接统一用 Router::url 并传入 index,避免站点未开 rewrite 时 404。
多分类文章的分类选择顺序:命中模板的二级分类 → 第一个二级分类 → 插件解析的顶级分类 → 第一个分类。这样「教程 + 开发」这类文章不会错落到顶级分类。
三、右栏改为纯文字列表
右侧「本分类最新」不再输出封面,只显示标题 + 两行摘要:
- 组件增加
$ccSideNoThumb开关,开启时跳过封面查询(少一次 fields 表查询); - 摘要提取先剥离 Markdown 图片与链接语法,再做去标签,避免
的地址被当成正文截进摘要; - 摘要为空时不输出空行,条目高度自动收缩。
四、分类继承修复(CategoryCustomizer)
问题:文章页的皮肤取「第一个能命中 post 模板的分类」,侧栏却直接取「第一个分类」。多分类文章于是出现「有皮肤、没侧栏」,三栏退化成单栏。
修复一:侧栏起点与模板、CSS 同源,取第一个命中 post 模板的分类。
修复二:每页文章数沿父分类向上继承。此前子分类没配置条数时直接回落到全局 5 篇,而父分类配置的是 15 篇,导致同一栏目内每页条数不一致。
五、数据治理
20 篇技术文章同时挂在「教程」和「开发」下,造成两个栏目内容完全重复,且「教程」因排序值更小总是抢占文章的第一分类。
处理:解除这批文章与「教程」的关系(仅删分类关系,文章本体与分类本身都保留),并把该分类计数归零。文章现在只归属「开发」。
六、发布端加固
MCP 发布脚本增加保险:
TYPECHO_FORCE_CATEGORY(默认开启):忽略调用方传入的分类,只用配置里的TYPECHO_CATEGORY;- 写入多个分类时回显警告,便于第一时间发现;
- 参数说明收紧,明确分类由配置决定。
七、验证结果
- 分类页:博客 / 随笔 / 开发 / 日志 均为 blog 皮肤 + 左右侧栏,每页 15 篇;
- 文章页:开发、随笔文章均为三栏,面包屑层级正确;
- 标题对齐:三个区块标题顶部与底部坐标完全一致;
- 面包屑链接逐条校验,全部 200,无 404;
- 工具 / 原创 / 喜欢三个栏目保持原样,无皮肤、无侧栏、每页 5 篇。
评论 0
还没有评论,来说两句吧。