对访客公开的措辞按身份分支:访客不该看到「我的结论」
用户发现未登录也显示「推荐 & 踩雷(我的结论)」,访客没法解读「谁的我的」。
顺着把访客可见模板与 static/js 全过了一遍,同病共四处——都是**写模板时站在站长视角下笔、
而那一块又对访客公开**:
1. stats.html:标题 → {{if .IsAdmin}}我的结论{{else}}站长结论{{end}};
副标题「只统计你自己…」→ 站长「你自己」/ 访客「站长」;两列「我推荐/我踩雷的地点」同理。
2. stats.html 访客块:「与我的结论互不影响:你标你的,访客投访客的」——对访客说不通,
改成对两边都成立的「与上面的站长结论互不影响:各存各的表,谁也不会覆盖谁」。
3. home.html:「我的标签」→「足迹标签」(同级卡片全是中性的:足迹地图/城市足迹/天气足迹…)。
4. report.html:「这一年里,你第一次踏足的这些城市」→ 去掉人称(年报是站长的回顾)。
已经写对的照它学:place.html 的投票区早就是 {{if .IsAdmin}} 分支(站长「我的结论」、
访客「大家怎么说」),rond-map.js 的气泡同理;「含家/工作」chip 与一串「只有你自己能看到」
本来就在站长分支里。
门禁 TestVisitorPagesUseThirdPersonCopy:以**访客 ctx(无 user)**渲染 /、/stats、/report,
逐个禁用词断言,同时断言站长那份**仍旧说「我的」**(别把站长自己的视角也改掉);
前置需打开 marks_public(访客才看得到那一块),用完还原。
⚠️ 变异验证时踩了老坑:直接 `go test -run …` 因缺 ROND_TEST_CONF/ROND_SRC 会**静默 skip 并报 ok**
(0.17s 就 ok,一眼假绿)。改用 ./scripts/verify.sh 后变异被正确抓住
(visitor_copy_test.go:85 报「我的结论」),还原后转绿。
全量验收 PASS=339 FAIL=0 SKIP=0。
This commit is contained in:
@@ -753,3 +753,32 @@ Core Data 元数据、索引、持久化历史、`ZRAWVISIT` 采样点、`ZTRIP*
|
||||
比数总数更能证明两块真的没串台。
|
||||
|
||||
顺带订正 README:那里还写着站长结论「按 `src_pk` 存」,其实早就是**坐标键**了。
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 三十七、措辞要分「站长视角」与「访客视角」(2026-10-01)
|
||||
|
||||
用户发现:**未登录也显示「推荐 & 踩雷(我的结论)」**,访客没法解读「谁的我的」。
|
||||
顺着做了一次系统排查(`grep "[我你咱]"` 扫访客可见模板 + `static/js`),
|
||||
发现同一个毛病还有三处,都是**写模板时站在站长视角下笔、而那一块对访客公开**:
|
||||
|
||||
| 位置 | 原文 | 改成 |
|
||||
|---|---|---|
|
||||
| `stats.html` 标题/副标题/两列小标题 | 我的结论 / 只统计**你自己**… / 我推荐的地点 / 我踩雷的地点 | `{{if .IsAdmin}}我的…{{else}}站长…{{end}}`(**按身份分支**) |
|
||||
| `stats.html` 访客块副标题 | 与「我的结论」互不影响:**你标你的**,访客投访客的 | 「与上面的站长结论互不影响:各存各的表,谁也不会覆盖谁」 |
|
||||
| `home.html` 标签卡标题 | 我的标签(同级卡片都是中性的:足迹地图/城市足迹/天气足迹…) | 足迹标签 |
|
||||
| `report.html` | 这一年里,**你**第一次踏足的这些城市(年报是站长的回顾) | 这一年里第一次踏足的这些城市 |
|
||||
|
||||
**已经写对的(照它学)**:`place.html` 的投票区早就是 `{{if .IsAdmin}}` 分支
|
||||
(站长「我的结论」/ 访客「大家怎么说」),`rond-map.js` 的气泡同理;
|
||||
`layout.html`/`map.html` 的「含家/工作」chip 与一串「只有你自己能看到」都在 `{{if .IsAdmin}}` 里,没问题。
|
||||
|
||||
**门禁用例** `TestVisitorPagesUseThirdPersonCopy`:以**访客身份**(`context.Background()`,ctx 里没有 user)
|
||||
取回 `/stats`、`/`、`/report`,逐个禁用词断言(`visitorCopyForbidden`),
|
||||
同时断言站长那份**仍旧说「我的」**(别把站长自己的视角也改成第三人称)。
|
||||
前置要把 `settings.site.marks_public` 打开(访客才看得到那一块),用完还原。
|
||||
|
||||
⚠️ 变异验证踩的坑(老坑,载入史册):**直接 `go test -run …` 会因为缺 `ROND_TEST_CONF`/`ROND_SRC`
|
||||
静默 skip 并报 ok** —— 我第一次做变异就是这么「假绿」的(0.17s 就 ok,明显不对)。
|
||||
变异验证必须走 `./scripts/verify.sh --pkg … --run …`(它会拦住 SKIP)。
|
||||
|
||||
Reference in New Issue
Block a user