docs(memory): 页面作用域机制、10 槽位约束与生成器重做的坑
This commit is contained in:
@@ -104,6 +104,19 @@
|
||||
按发布者 `owner.Theme`。都看箱主/发布者,不看访客。全站页(`/`、`/explore`、`/login`)不主题化。
|
||||
- 投票页**语言**也跟发布者:`applyOwnerLocale(data map[string]interface{}, owner)`(与主题同一个函数),
|
||||
必须在任何 i18n 取词之前调用;箱主未配语言才回退访客/站点默认。签名收 map 是为了能纯内存单测。
|
||||
- **按页面作用域**:`internal/context.pageScope()` 输出 `<html data-page-scope>`,取值
|
||||
`box`/`question`/`admin`(/user/questions,/user/votes*)/`profile`/`vote`。主题用
|
||||
`html[data-theme-style="x"][data-page-scope="y"]` 覆盖整页背景与装饰。⚠️ 深色覆盖必须写
|
||||
**三重选择器**(加 `[data-theme="dark"]`),否则被浅色作用域块盖掉(同特异性、写在后面)。
|
||||
没写覆盖块的页面自动回退全局。首页/`/explore` 不加载主题 css。
|
||||
- ⚠️ **装饰层固定 10 槽**(base.css 12 层 = pattern1 + deco10 + image1),`--tb-deco`/
|
||||
`-size`/`-position` 三组必须等长。`TestDecoSlotCount` 逐文件逐声明检查;少写一个不报错,
|
||||
只会让图层与 size/position 错位(整页重复同一张图 / 人物跑到左上角)。
|
||||
- 位置一律写两值 `calc(0%|50%|100% ± Npx)`(百分比相对「容器 − 图片」)。**别用 left/bottom
|
||||
关键字混搭**:「水平居中 + 垂直贴底」是三值语法,非法时整条声明作废、图层静默回左上。
|
||||
- 可视化编辑走 `dev/theme-builder/`(`serve.py` 起服务 + iframe 加载真实页面快照)。
|
||||
file:// 下父页面读不到 iframe 的 DOM,所以必须走 HTTP;预览快照由
|
||||
`TEST_PREVIEW=1 go test ./templates -run TestGenPreview` 生成。
|
||||
- 一套主题 = `static/css/themes/<slug>.css`,**只覆盖令牌**,不碰布局。`static/fs.go` 已嵌整个 `themes/` 目录,
|
||||
新增主题只需放文件 + 登记 `[theme] available`(底稿 `_scaffold.css`)。
|
||||
- ⚠️ **`[theme] available` 是硬白名单,启动时读一次**:css 发布了但没登记,设置页就是看不到,现象和「部署没生效」一样。
|
||||
|
||||
Reference in New Issue
Block a user