首页自动收录新文件并 自动提取文章 <title> 作为卡片标题(零配置路径)。进阶可选:为 index.html 补 META 条目获得精装卡片(含简介与标签)。
| 组件 | 位置 / 说明 |
|---|---|
| Web 服务器 | nginx 1.14.1 · /etc/nginx/conf.d/desktop-html.conf · 端口 8011 |
| 站点根 | /var/www/desktop-html/ |
| 首页机制 | index.html 逐分类 fetch /listing/<目录>/(autoindex JSON,非递归)→ 渲染卡片 |
| 标题来源 | 优先查内嵌 META(key="目录/文件名");查不到时 自动 fetch 文件提取 <title> 兜底,标签显示「自动收录」 |
| 兜底区 | 根目录散落 .html 显示在「📥 未归类」——放根目录不会丢,只是未归类 |
| 旧链兼容 | nginx 回退:根级 .html 未命中按 知乎→投资→调研→工具→其他 顺序回退,旧扁平直链全部仍 200 |
| 子站(勿动) | fq-book/ · grid-data/ · parking-viz/ · /quota(反代 8471)· share.js / track.js |
| 备份惯例 | 服务器快照 /var/www/backups/;永久归档 oss://agent-kanban/backup/desktop-html/ |
分类目录(首页按此优先级展示):知乎/ 投资/ 调研/ 工具/ 其他/ 数据/(数据目录不显示卡片)
核心原则:按文章主旨内容分类,而非来源平台。冲突时按站长主权排序:知乎 > 投资 > 调研 > 工具 > 其他。
知乎/投资/投资/(先例:ashare-zhihu-*、zhihu_invest_q2、zhihu_expectation_q4、龙头18868)调研/工具/其他/数据/(不展示)slug-YYYY-MM-DD.html;避免空格(用连字符);日期后缀放末尾<title> 必须写完整中文标题——这是自动收录时卡片标题的唯一来源.json/.md/.js)必须与 html 同目录(相对引用)index.html 的 CATS 数组._* 垃圾文件# Step 1 备份(红线,永远先做)
tar czf /var/www/backups/new-file-$(date +%Y%m%d%H%M%S).tgz -C /tmp 新文件.html
# Step 2 上传(二选一)
# a) 云助手直传(小文件 <32KB):aliyun ecs RunCommand … echo "<base64>" | base64 -d > 目标路径
# b) OSS 中转(大文件/中文文件名推荐):
# agent 本地: aliyun oss cp 文件.html oss://agent-kanban/tmp/ --region cn-wulanchabu
# aliyun oss sign oss://agent-kanban/tmp/文件.html --timeout 600 --region cn-wulanchabu
# ECS 执行: curl -sS -o /var/www/desktop-html/投资/文件.html '<预签名URL>'
# ⚠ 管道会吞掉 oss cp 失败退出码,上传后必须 oss stat 核对字节数
# Step 3 放入分类目录(见决策树),确认同名侧车同迁
# Step 4 验证
curl -s -o /dev/null -w '%{http_code}\n' 'http://127.0.0.1:8011/投资/文件.html' # 期望 200
curl -s 'http://127.0.0.1:8011/listing/投资/' | python3 -c 'import json,sys;print(len(json.load(sys.stdin)))' # 计数+1
# Step 5 归档 + 清理中转
aliyun oss cp 文件.html oss://agent-kanban/backup/desktop-html/ --region cn-wulanchabu
aliyun oss rm oss://agent-kanban/tmp/文件.html --region cn-wulanchabu
回滚:文件级从备份 tar 恢复;动过 nginx 则 cp 备份.conf → nginx -t → systemctl reload nginx(常规加文章不需要动 nginx)。
v1.1 主路径:本地 build.py 的 NEW_META 加条目(key 是裸文件名)→ 同名文件注册进 CAT_FILES → python3 build.py 核对 meta 数 → index+CSV 回传。下方手动路径仅急用。
cp -a index.html index.html.bak-meta-$(date +%Y%m%d%H%M%S)index.html 的 const META = { 中插入(key 必须是 目录/文件名):"投资/我的新文章.html": {
"title": "中文标题(≤30字)",
"desc": "基于实际内容的一句话简介(≤120字),写给三个月后的自己",
"tag": "投资 · 子主题 · 形态"
},
ls -la 核对字节,浏览器强刷验证build.py 生成,两条隐形规则:NEW_META 的 key 是裸文件名(最终渲染才带「目录/文件名」前缀,写错会静默走兜底:tag=分类名、desc=标题);文件必须注册进 CAT_FILES 才进 META/CSV,否则只被自动收录(无简介)articles=N meta=N 两数相等;改完 META 必须重传 分类清单.csvlstrip("./"):会把绝对路径 /share.js 剥前缀误报缺失${r.url} 会被当相对链接,需排除LTAI 先看上下文——base64 数据里可能恰好含这四个字母.card 文本过滤.bak-opt-时间戳 备份;每个「断链」先 curl 实证再修/quota 反代、fq-book/、share.js、track.js*.bak-* 备份df -h 确认磁盘/listing/<分类>/ 计数 +1