# 视界 · Visual Feed
**中文** | [English](#english)
> 把你散落在 Obsidian 里的照片重新组织起来,变成一个能一直往下滑的照片流。
一个 Obsidian 插件:扫描你指定的一个或多个文件夹(日记、社交平台归档、随手记、剪藏……),把里面出现过的**图片和视频**抽出来,重新排成 Instagram 风格的时间流 —— 单列大图,或者多列网格瀑布流,左下角一点就切。
**纯本地运行。不复制原文件、不生成缩略图、不改动你的任何一条笔记。**
---
## 它解决什么问题
用久了 Obsidian 之后,照片是**散落**的:今天的记录在 `日记/2026/0901.md`,一条动态在 `社交归档/2026-09-01.md`,随手记又在另一个文件夹里。想回看「我以前拍过什么」,只能在文件树里翻。
视界不改你的目录结构,也不要求你把照片搬到统一的地方。它只是**按你给的范围建一份索引**,然后把照片按时间倒序铺出来 —— 于是你的笔记结构完全不用动,但你多了一个专门用来看照片的地方。
---
## 特性
### 两种布局,随手切换
左下角按钮一点就切,选择会被记住:
- **单列 Feed** —— Instagram 风格。照片大、带正文与来源,一条一条往下看。
- **网格瀑布流** —— 多列自动铺满,瓦片**固定正方形**、裁切填满,一屏能扫很多张。瓦片模式下正文和来源整块都不渲染(不是藏起来),照片再多也不卡。默认**每张照片一格**:一条记录里的照片全部摊开,各占一格;不想打散就切成**每条记录一格**(多图在格子里左右滑)。格子上不叠任何东西 —— 没有张数角标、没有图标,只有照片本身。
两种布局共用同一套**分批渲染**:首屏只渲染一批,滚动到哨兵才追加下一批,提前 1200px 预载。上千张照片也不会一次性塞进 DOM。
### 照片框比例可调
照片的原始比例差异极大(实测 45% 是 1:1,但也有 1:10 的手机长截图和 15:1 的全景),直接铺出来会参差不齐。三档策略:
| 模式 | 行为 |
| --- | --- |
| **限制范围**(默认 4:5 ~ 16:9) | 区间内的照片**完全不动**,只有越界的极端比例裁到边界值。实测只有约 22% 的记录会受影响 |
| 统一比例 | 全部裁成同一个比例(9:16 / 3:4 / 4:5 / 1:1 / 4:3 / 16:9),整列最齐 |
| 原始比例 | 完全不裁,完全按原图 |
另外「图片最大高度」限制照片区域占屏幕的高度;超过时照片框会**整体缩窄**而不是左右留白。
### 多图轮播 + 原图浏览
- 一条记录里有多张图 → 轮播(滑动 / 拖拽 / 箭头 / `1/N` 角标),滑动带 scroll-snap
- 点任意照片 → 全屏 Lightbox,**可以跨记录连续滑动**,键盘 `←` `→` `Esc` 操作,触屏原生手势
- Lightbox 里可以一键「回到原记录」,直接跳到那条记录所在的**行**
### 发布照片与视频
右下角 `+`(或命令「发布照片或视频」):
1. 多选图片和视频(在 Obsidian 内直接拖入)
2. 每个媒体可以单独写说明
3. 选一个日期时间
4. 选目标文件夹(原生文件夹选择器)
然后插件会写进 `{目标文件夹}/YYYY/MM/MMDD.md`,媒体用 `![[纯文件名]]` 嵌入,附件落在你指定的附件文件夹(留空则跟随 Obsidian 的附件设置)。
几个刻意做对的地方:
- **一个时间戳 = 一条 Post**。同一天发多条,会自动按 `HH:MM` 升序插进同一个文件,而不是各写一个文件。
- 分段**只看时间戳,不认固定标题**:`### HH:MM` 小标题或 `- HH:MM` 列表项都是 Post 的开头,一直管到下一条时间戳为止。`## Memos` / `## 随记` / `## 日记` / `## Journal` 这类标题只是普通标题,叫什么、有没有都不影响解析。
- 沿用你文件里**已经有的格式**:本来是 `### HH:MM` 小标题就插小标题,本来是 `- HH:MM` 列表就插列表项;两种混在同一份文件里也会按出现顺序正常解析。
- **完全没有时间戳也照样能用**:正文里一个 `HH:MM` 都没有时,**整篇算一条记录**(文件级回退),不会因为缺时间戳就把含图的笔记跳过。适合「一天一篇、每篇几张图」的写法 —— 那些图会合并成**一张卡片的多图轮播**。
- **日期和时分都是兜底着来的**,不要求任何特定写法:日期取 `date` → 路径里的年月日 → 文件修改时间;时分取 `date` 里的时间 → 文件名里的 `HH-MM`。两者都取不到就只显示日期,**不硬造一个时间**出来。
- 文件名里的 Windows 非法字符会被清洗(冒号特别危险 —— 它会被 NTFS 当成 ADS 静默截断成 0 字节),重名自动加 `-1`,换行符保持原样。
- 视频用 `