Releases: noctisvexx/obsidian-visual-feed
Releases · noctisvexx/obsidian-visual-feed
Release list
1.6.9 — 跨设备同步过来的图片自动补上,不用再手动重建索引
从别的设备同步过来的图片,现在会自动补进「视界」,不用再手动重建索引。
- 图片比笔记晚到:md 先到、图片后到(另一台设备同步过来)时,解析笔记那一刻图片还不存在,那条引用就被直接丢掉了,索引里不留任何痕迹;等图片真到了,插件也不知道「谁在等它」,只好一直缺着,只能手动点重建索引。现在解析时会把暂时找不到的本地图片/视频引用记进一张「待定引用表」,图片到达时按完整路径和末级文件名两种写法去匹配,只重新解析在等它的那几篇
- Obsidian 关着的时候图片才同步进来:这种 md 自身没变化,启动的增量对比发现不了。现在启动后会拿待定表轻查一遍(只看这个文件在不在,不读正文),能解析了才重解析;链接缓存就绪时也会补扫一次,同步批量落盘的情况做了 800ms 防抖
- 代价很小:只有真在等这张图的笔记会被重新解析,没有待定条目时一个文件都不读
⚠️ 索引结构升到 v2,升级后首次打开会自动重建一次索引(这次补不回来,只能重建)- 需 Obsidian 1.13.0+
Full Changelog: 1.6.8...1.6.9
1.6.8 — 冷启动空白修复、大图关闭按钮让开顶部安全区
修掉两个手机端问题:冷启动后标签页空白、大图预览的关闭按钮点不到。
- 冷启动空白:开着「视界」把 Obsidian 从后台划掉再启动,偶尔整个标签页只剩空白(连右下角浮动按钮都没有),关掉重开又好了 —— 根因是视图初始化在极早期抛了异常,Obsidian 恢复标签页时是自动重建的,一抛就只剩空壳。现在存储读写各自隔离(读失败回默认筛选、写失败只告警)、骨架与渲染全程兜底,失败不再是留白而是给一个「视界加载失败 + 重试」面板;布局还没就绪时会在就绪后自动补渲染一次,没建起来则自动重试一次初始化
- 大图关闭按钮让开状态栏:遮罩是全屏
fixed,手机上视口含状态栏/刘海,之前写死top: 14px会落在状态栏里被系统吃掉触摸;窄屏图片区的顶部留白又只有 44px,竖长图会顶到按钮下沿。现在top/right都走env(safe-area-inset-*),窄屏下按钮给足 44px 触摸目标并加了一层半透明底,图片区顶部留白也一并让开按钮下沿 - 需 Obsidian 1.13.0+
Full Changelog: 1.6.7...1.6.8
1.6.7 — 来源筛选多选、选中态高亮、筛选状态记忆
来源筛选从单选改成多选:点一个加入、再点一下移出,多个来源取并集(「全部」= 清空已选;一个都不选本来就是全部)。
- 选中态改成整块填充强调色:Obsidian 内置的
button:not(.clickable-icon)会顶掉单类选择器的背景色,之前选中只显示一圈细边框、看不出到底选没选中;改用选择器提权压过去(不写!important) - 筛选状态(来源 + 年份 + 起止日期)会被记住:存在设备本地存储里,重启 Obsidian、重载插件、关掉标签页再打开都还在;点「重置筛选」即清空
- 来源被改名或删掉后,恢复时会自动剔除失效项
- 需 Obsidian 1.13.0+
Full Changelog: 1.6.6...1.6.7
1.6.6 — 移动端视频显示首帧缩略图
桌面 Chromium 会主动为 preload="metadata" 的
- 新增
src/utils/video.ts的videoThumbSrc():已带#或空地址原样返回,不二次拼接 - 应用于卡片、大图 Lightbox 与发布预览三处
- 需 Obsidian 1.13.0+(沿用 1.6.5 的 minAppVersion)
Full Changelog: 1.6.5...1.6.6
1.6.5 — 设置页改用声明式设置 API(需 Obsidian 1.13.0+)
设置页改用 Obsidian 1.13.0 的声明式设置 API(getSettingDefinitions()),display() 已删除。
因为声明式设置要求 1.13.0,本次最低版本要求从 1.5.0 提到 1.13.0。
- 设置项现在也能被 Obsidian 自带的设置搜索搜到(以前搜不到)
- 顺手清掉旧的 API 版本探测回退(
setDestructive现在可直接调用) - 来源文件夹、文件夹选择、索引统计、重建索引按钮仍保持原来的交互
- 401 项测试全部通过
还在 Obsidian 1.12 及更早版本上?继续用 1.6.4(最后一个支持 1.5.0+ 的版本)。
Full Changelog: 1.6.4...1.6.5
1.6.4
1.6.3 — 发布时的时间戳规则与解析统一
修复
- 发布(publish)与解析(indexer)现在共用同一套时间合法性规则。
此前发布流程自己带了一套宽松的时间正则,- 99:99、### 25:80这类非法时间会被当成追加记录的锚点,而解析器根本不认这些行 —— 同一份笔记,一边认为是记录、另一边认为不是。
现在两边的时间规则都从同一个来源拼出,只接受合法 24 小时制:- 有效:
- 12:56、- 9:05、* 12:56、- 23:59 - 无效:
- 24:00、- 25:80、- 99:99
- 有效:
说明
- 不改动 Post 分段规则、文件格式与界面。
- 测试 373 项全绿(新增 9 项断言,同时核对解析器与发布器对同一行的判定)。
安装:下载 main.js、manifest.json、styles.css,放进 .obsidian/plugins/visual-feed/。
1.6.2 — 去掉固定标题依赖,没有时间戳也能用
变更
- 解析只按时间戳定位,不再依赖任何固定标题:正文里出现
- HH:MM或### HH:MM才算一条记录,标题叫什么都不参与判断。 - 完全没有时间戳也照样能用:正文里一个
HH:MM都没有时,整篇算一条记录(文件级回退),不会因为缺时间戳就把含图的笔记跳过。适合「一天一篇、每篇几张图」的写法 —— 那些图会合并成一张卡片的多图轮播。 - 日期和时分都是兜底来的:日期取
date→ 路径里的年月日 → 文件修改时间;时分取date里的时间 → 文件名里的HH-MM。两者都取不到就只显示日期,不硬造一个时间。 - 发布时不再创建、也不依赖任何固定标题,新文件只写 frontmatter;连一条锚点都没有就直接追加到正文末尾。
- 移除了作者私有的日期字段与固定标题依赖。
说明
- 测试 364 项全绿。
安装:下载 main.js、manifest.json、styles.css,放进 .obsidian/plugins/visual-feed/。