给 Typecho 1.3.0 的 Robes 主题新增三个独立页面模板,卡片墙排版,单排最多 3 个,窄屏自动降为 2 个。
页面不引用评论系统,也不带点赞按钮。
一、安装
- 备份线上原有主题目录(
usr/themes/robes),整目录重命名成robes-bak即可。 - 把
robes1.2.gz解压,得到robes/目录,覆盖上传到usr/themes/。 - 浏览器按
Ctrl + F5强刷一次(css/main.css和js/main.v2.js改了,文件名没变,浏览器可能还在用旧缓存)。
也可以只上传 7 个改动文件,见文末「改动清单」。
二、三个页面怎么建
后台 → 管理 → 独立页面 → 新增页面,创建三个页面:
| 页面标题 | 自定义模板选 | 建议缩略名 |
|---|---|---|
| 电影 | 电影 | movies |
| 书籍 | 书籍 | books |
| 好物 | 好物 | goods |
模板下拉框里会多出 电影 / 书籍 / 好物 三项(在「自定义模板」里选)。
侧边栏会自动出现这三个入口,并且已经给它们配好了图标(电影=胶片、书籍=书、好物=礼物)。
三、条目怎么写
在页面正文里写,一行(或一段)一条,模板会自动抓出来排成卡片墙,短代码之外的正文会正常显示在卡片墙上方,可以正常写 Markdown 标题和段落。
写法一:属性式(一行一条,推荐)
[item cover="海报图URL" title="抓特务" score="7.4" by="冯小刚" extra="2025 · 中国大陆 · 剧情" desc="雷佳音 / 胡歌 / 啜妮" link="https://movie.douban.com/xxx" tag="2025"]写法二:块式(一条一段,适合值里带英文引号)
[item]
cover: 海报图URL
title: 抓特务
score: 7.4
by: 冯小刚
extra: 2025 · 中国大陆 · 剧情
desc: 雷佳音 / 胡歌 / 啜妮
link: https://movie.douban.com/xxx
tag: 2025
[/item]两种写法别混用,混用的话卡片顺序可能不是你要的。
字段说明
| 字段 | 别名(写哪个都行) | 作用 |
|---|---|---|
cover | 封面 / 海报 / img / image / poster | 封面图,电影书籍建议竖版海报(2:3) |
title | 标题 / name | 标题,必填,超长自动省略号 |
score | 评分 / rating / star | 评分,默认十分制,自动画成星星 |
scale | 满分 / max | 改成五分制就写 scale="5" |
by | 导演 / 作者 / 品牌 / director / author / brand | 会带上页面默认标签(电影=导演,书籍=作者,好物=品牌);自己带上「:」就不再加标签 |
extra | 备注 / 信息 / info | 灰色小字,放年份、时长、出版社、价格这类 |
desc | 简介 / 演员 / intro / actors | 最多显示两行,超出省略 |
link | 链接 / 地址 / url | 整张卡片可点;站外链接自动新窗口打开 |
tag | 角标 / 年份 / 状态 / badge | 封面右上角的小圆角标签 |
字段都可以不写,只有一个 title 也能正常显示。
示例:电影
[item cover="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p1.jpg" title="抓特务" score="7.4" by="冯小刚" extra="2025 · 中国大陆 · 剧情" desc="雷佳音 / 胡歌 / 啜妮 / 张瑶" link="https://movie.douban.com/subject/xxx" tag="2025"]示例:书籍
[item cover="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2.jpg" title="活着" score="9.4" by="余华" extra="作家出版社 · 2012" desc="一个人和他的命运之间的友情" tag="已读"]示例:好物
[item cover="https://example.com/mx-master.jpg" title="罗技 MX Master 3S" score="9.2" by="Logitech" extra="¥699" desc="用了一年,滚轮手感确实回不去了" link="https://www.logitech.com" tag="办公"]四、想调外观?改这三个文件的注释行
movies.php / books.php / goods.php 里各有一段被注释掉的配置,去掉注释就能生效:
RobesCollection::render($this, 'movie', array(
// 'columns' => 2, // 单排最多几个(默认 3,觉得挤就改 2)
// 'ratio' => '2 / 3', // 封面比例,横版图可以改成 '16 / 10'
// 'showTitle' => false, // 不想显示页面大标题就改成 false
// 'byLabel' => '导演',
));- 觉得 3 列挤 →
'columns' => 2。实测:3 列时卡片宽 204px,2 列时 313px(内容区固定 639px)。 - 好物想用竖图 →
'ratio' => '3 / 4'。默认好物是方图1 / 1,电影书籍是2 / 3。 - 不想让正文里的大标题出现 →
'showTitle' => false。 - 页面的标题文字(就是卡片墙上方的「电影」)取的是页面本身标题,改页面标题即可。
五、行为说明
| 情况 | 表现 |
|---|---|
| 页面里一条都没有 | 显示引导页,直接把示例复制到正文即可 |
| 封面图加载失败 | 封面区域自动显示一个占位图标,不会出现破图 |
| 站外链接 | 自动 target="_blank" 新窗口打开 |
| 站内链接 | 走主题的 PJAX 无刷新跳转 |
| 深色模式 | 已适配,星星保持金色 |
| 手机(≤640px) | 自动变两列(竖版海报墙效果) |
| 卡片入场 | 和友链、相册一样有滚动淡入动画 |
六、改动清单
| 文件 | 改动 |
|---|---|
movies.php | 新增,电影页面模板 |
books.php | 新增,书籍页面模板 |
goods.php | 新增,好物页面模板 |
inc/collection.php | 新增,三个页面共用的解析 + 渲染器 |
css/main.css | 追加约 200 行 .col-* 样式(原有内容一行未删,纯追加) |
js/main.v2.js | 1 行:把 .col-card 加入卡片淡入动画的选择器列表 |
sidebar.php | 追加 3 行:电影 / 书籍 / 好物的侧边栏图标映射 |
用 robes-collection.diff 可以看到逐行对比(orig/ 是原版,robes/ 是改后)。
回滚
删除 movies.php、books.php、goods.php、inc/ 四个文件,
再从 robes-collection.diff 里把 main.css 末尾追加段、main.v2.js 那一行、sidebar.php 那三行还原即可。
或者直接用备份的 robes-bak 目录换回来。
七、已验证内容
- 全部 20 个 PHP 文件
php -l语法通过 - 解析器 47 项单元测试全绿(两种写法、中文字段名、别名、五分制、空值、异常输入、XSS 转义)
真实浏览器(Edge)渲染截图确认:
- 桌面 1440px → 3 列,卡片 204px,整排最多 3 个
columns=2→ 2 列,卡片 313px- 手机 390px → 2 列,卡片 175px,无横向溢出
- 深色模式、空状态、无封面占位均正常
- 页面无 JS 报错,无评论模块
暂无评论
还没有评论,来说点什么吧