主题生成器支持素材前缀(主题素材可放 R2/OSS)
主题素材只有一处引用:主题 css 的 url()(分享卡是 Go 用 imaging 画的,不读素材), 所以只要让 CSS 里的地址指向对象存储即可。 - 导出面板新增「素材前缀」:空 = /static/images/themes/<slug>/(图片随二进制发布,与以前一致); 填 https://cdn.example.com/themes = CSS 写绝对 URL,zip 里的图片改为「上传用」 - 地址统一由 urlOf() 决定。修了一个重复实现:layerCSS 里复制过一份路径拼接, 只改 urlOf 会出现「背景走 CDN、装饰还指本地」 - 前缀随意切换不影响预览(预览恒用内联 dataURL);存进工程 json;?assetbase= 可自检 - INSTALL 文案按是否托管分叉,写清图片传到哪、换域名要重新导出 - 新增 docs/theme-assets-cdn.md:三种做法(生成器前缀 / 应用内 301 / 边缘改写)、 缓存与 ?v=、CORS 不需要、深色无素材、迁移用的 sed 命令 - README 更新;UI 修正:240px 面板里 4 字标签会被 flex 压窄,需 flex:0 0 auto + 84px
This commit is contained in:
@@ -551,3 +551,25 @@ base.css 还原成 CRLF,插入行要用同一行尾,否则变 MIXED。
|
||||
改动:`props/bike.webp`(397×259 画布不变,位置公式不用动)、css 里图片 `?v=20261020d→20261021a`、
|
||||
`StaticVersion 20261021c→20261021d`、两份 docs 同步。`go test ./internal/theme` 全绿。
|
||||
⚠️ 画布尺寸**不能裁**:裁完 `auto 259px` 的显示宽度变了,`left calc(50% - 612px)` 的锚点会跟着漂。
|
||||
|
||||
## 19:4x 两件事:/user/questions「卡片透明」根因 + 主题素材上 R2
|
||||
|
||||
**1) /user/questions 卡片透明 —— 不是主题,是模板没有卡片**
|
||||
`templates/user/question-list.html` 整个文件只有 1 处 `.uk-card`(投票 tab 的「我的投票」标题条);
|
||||
提问列表是 `<div class="uk-margin-medium-bottom">` + `<hr>` **裸铺在页面上**。
|
||||
默认主题底色 #fff 看不出来,换带整页插画的主题后场景整片透上来 = 「卡片透明」。
|
||||
修:`.qlist-panel` 加卡片底(`--tb-surface` + `--tb-radius` + `--tb-shadow` + padding,
|
||||
≤640px 收紧),内部那张 `.uk-card-default` 降成 `--tb-surface-2` 去阴影(防卡片套卡片)。
|
||||
验证:本地快照注入 shiroko 后,行内容落在卡上,场景只从卡外透出;默认外观只是多一层白卡。
|
||||
⚠️ 页面级样式仍写在模板 `<style>` 里(不搬 base.css),符合既有约定。
|
||||
|
||||
**2) 主题素材放 R2 —— 三种做法,生成器已支持 A**
|
||||
素材只有一处引用:主题 css 的 `url()`(分享卡是 Go 用 imaging 画的,不读素材)。
|
||||
- A 生成器「素材前缀」:导出面板新增输入(`S.assetBase`,存进工程 json,`?assetbase=` 可测),
|
||||
`urlOf()` 一处决定地址 → 绝对 URL。**踩到过坑:`layerCSS` 里复制了一份路径拼接**,
|
||||
只改 urlOf 会导致「背景走 CDN、装饰还指本地」,已统一到 urlOf。
|
||||
- B 应用内 301:`[theme] asset_base` + 中间件(必须注册在 `flamego.Static` **之前**)。
|
||||
- C 边缘/反代改写(CF Origin Rule / nginx)。
|
||||
细节与取舍写进新文档 `docs/theme-assets-cdn.md`(含缓存、CORS、深色无素材、迁移 sed 命令)。
|
||||
⚠️ UI 坑:面板 240px 里 4 个中文字的 label 会被 flex 压缩、末字被输入框切掉 →
|
||||
label 要 `flex:0 0 auto; white-space:nowrap`,宽度给 84px 才够(68px 仍会切)。
|
||||
|
||||
@@ -41,3 +41,6 @@
|
||||
且数值放进 label 里(第三个小 flex 项会被顶出可视区)。
|
||||
- `?dump=css` 的产物要过 Go 侧校验:临时存成 `static/css/themes/<非下划线名>.css` 再 `go test ./internal/theme`,
|
||||
跑完删掉。
|
||||
- 导出面板「素材前缀」`S.assetBase`:空 = `/static/images/themes/<slug>/`;填了 = CSS 写绝对 URL
|
||||
(R2/OSS)。**图片地址只能由 `urlOf()` 决定** —— `layerCSS` 曾复制过一份拼接,改一处会出现
|
||||
「背景走 CDN、装饰还指本地」。文档见 `docs/theme-assets-cdn.md`。
|
||||
|
||||
@@ -36,3 +36,6 @@
|
||||
截图必须 `chrome --headless=old --force-device-scale-factor=1`(新版 headless 本机挂住)。
|
||||
⚠️ `--window-size` ≠ CSS 视口;要精确视口就用 iframe 指定 width/height。验证 CSS 靠**像素比对**
|
||||
(PIL 在 venv)而非目测;扫描循环上界不能与物体边界重合。
|
||||
- ⚠️ **后台页不是都有卡片**:`/user/questions` 的列表是 `<hr>` 裸行,模板里唯一一处 `.uk-card`
|
||||
是投票 tab 的标题条。默认主题 #fff 看不出来,换带整页插画的主题就"整页透上来"。
|
||||
已在 `.qlist-panel` 上补卡片底;新增后台页时别假设外层已有卡片。
|
||||
|
||||
Reference in New Issue
Block a user