VAULT
Cyletix

MemoFlow

A Thino-Like Obsidian JavaScript GUI for Feynman Technique Note-Taking

MemoFlow

基于 DataviewJS 的 Obsidian 记录与回顾面板,提供:

  • 快速写入时间戳笔记 / 日记
  • 任务 / 列表模式切换
  • 日记、时间戳、任务、普通笔记统一回顾
  • 标签 / 日期范围筛选
  • 单文件版与拆分脚本版两种使用方式

v2.0.0 开始,本仓库只维护一个官方版本-MemoFlow-.md

旧的 MemoFlow / MemoFlow2 双版本体系,以及历史拆分脚本,统一移入 legacy/ 目录保留,不再继续维护。

当前发布内容

  • -MemoFlow-.md:官方单文件版,包含输入区 + 结果区
  • MemoFlowInputbox.js:官方拆分输入模块
  • MemoFlowTasksView.js:官方拆分结果模块
  • MemoFlowTest.md:拆分脚本测试样例
  • legacy/:历史版本与旧试验稿

当前主线包含的改动

相对于仓库里原来的 -MemoFlow-.md / -MemoFlow2-.md,当前主版本已经合并近阶段正式使用中的主要行为改动:

  • 合并原先双版本思路,统一为可配置 PathToDiary + DiaryFormat + FlowFormat
  • 支持更紧凑的顶部布局、分页与筛选面板入口
  • 顶部复选框会根据可用宽度在单行 / 多行 / 面板之间自适应切换
  • 新增三态折叠按钮:自动 / 全部折叠 / 全部展开
  • 支持渐进扫描与分页锁定,刷新时减少闪烁感
  • 支持 sender 草稿缓存与筛选条件持久化
  • 写入日记时优先兼容官方 Daily Notes 配置
  • 标签筛选支持 !taga,ba;b 与层级标签树匹配
  • callout 压缩样式仅作用于 MemoFlow 区域,并统一了 quote / todo / tip 的内边距表现
  • 标签筛选固定为按文件级 frontmatter 标签过滤

旧版本差异

MemoFlow

旧版特点:

  • 默认按 PathToDiary/{年份}/YYYY-MM-DD.md 自动创建日记
  • 日期格式基本固定
  • 布局与筛选能力较早期

MemoFlow2

旧版特点:

  • 已支持自定义 PathToDiary
  • 已支持 DiaryFormat / FlowFormat
  • 是后来很多行为的基础

当前主版本

当前官方版本可以视为:

  • 以旧 MemoFlow2 的可配置路径/命名能力为基础
  • 吸收正式使用版里已经验证过的一体化 UI / 筛选 / Daily Notes / 样式改进
  • 不再继续维护“双版本分叉”

如果你以前依赖“自动创建年份子文件夹”的旧行为,可以继续参考 legacy/-MemoFlow2-.md 或旧仓库历史,自行保留那套策略。

标签筛选规则

当前版本的标签筛选规则已经收敛为:

  • 时间戳笔记:按该文件 frontmatter 中的 tagstag 过滤
  • 日记:按整篇日记文件 frontmatter 中的 tagstag 过滤
  • 日记中的每一条闪念/任务:只继承所属日记文件的标签,不单独解析正文内联 tag

也就是说,当前版本不按正文里的 #标签 做筛选依据

筛选表达式语义:

  • a,b:表示 a AND b
  • a;b:表示 a OR b
  • !a:表示 NOT a
  • 层级标签按 / 处理:项目 会同时命中 项目项目/PKM项目/AI
  • 输入时带不带 # 都可以,内部会自动归一化

组合规则保持一致:

  • a,!b:表示 a AND NOT b
  • a;!b:表示 a OR NOT b
  • a,!b;c,!d:表示 (a AND NOT b) OR (c AND NOT d)
  • 项目,!归档:表示命中 项目 这一整棵层级,同时排除 归档 这一整棵层级

示例:

FilterTags:
   - 日记
   - 项目,重要
   - 项目,!归档
   - 项目/PKM

含义是:

  • 命中 日记
  • 或同时命中 项目重要
  • 或命中 项目 且不命中 归档
  • 或命中 项目/PKM 及其更下层子标签

使用方式

1. 官方单文件版

直接使用 [ -MemoFlow-.md ],复制到你的库中即可。

适合:

  • 想直接复制即用
  • 不想拆分维护脚本
  • 希望一个文件里就包含完整逻辑

2. 官方拆分脚本版

在一个 Markdown 笔记中分别引用:

await dv.view("Project/MemoFlow/MemoFlowInputbox");
await dv.view("Project/MemoFlow/MemoFlowTasksView");

如果你把仓库放在别的目录,请把 Project/MemoFlow/ 改成你自己的 vault 相对路径。

YAML 参数

参数默认值说明
PathToTimestampdata/timestamp时间戳笔记目录
PathToDiaryMindscape/Diary日记目录
PosToDiaryList闪念日记中普通列表写入的标题
PosToDiaryTask计划日记中任务写入的标题
DiaryFormatYYYY-MM-DD日记文件名格式
FlowFormatYYYY-MMDD HHmmss时间戳笔记文件名格式
DefaultToDiaryfalse默认写入日记还是时间戳
DefaultAsTaskfalse默认按任务还是普通列表写入
ShowTasktrue结果区默认显示任务
ShowListtrue结果区默认显示普通列表
ShowDiarytrue结果区默认显示日记来源
ShowMemotrue结果区默认显示时间戳来源
LimitNum32每页显示数量
FilterTags[]默认标签筛选条件
TimestampNoteCalloutquote时间戳普通笔记的 callout 类型
DiaryNoteCallouttip(官方文件预设)日记普通笔记的 callout 类型

示例配置

---
PathToTimestamp: data/timestamp
PathToDiary: Mindscape/Diary
PosToDiaryList: 闪念
PosToDiaryTask: 计划
DiaryFormat: YYYY-MM-DD
FlowFormat: YYYY-MMDD HHmmss
DefaultToDiary: false
DefaultAsTask: false
ShowTask: true
ShowList: true
ShowDiary: true
ShowMemo: true
LimitNum: 32
FilterTags: []
TimestampNoteCallout: quote
DiaryNoteCallout: tip
---

legacy 目录说明

legacy/ 中目前保留:

  • -MemoFlow2-.md
  • MemoFlowInputbox5.js
  • MemoFlowTasksView1.js ~ MemoFlowTasksView5.js

这些文件用于对照历史实现与兼容旧方案,不再作为当前发布主入口。

发布说明

当前建议发布版本号:v2.0.3

v2.0.3v2.0.2 基础上主要完成了界面与样式收尾:

  • 继续稳定 quote / todo / tip 三类 callout 的边距与内边距表现
  • 修正 quote 中嵌入 markdown 与 Dataview 任务列表带来的额外空白
  • 保持拆分版、官方单文件版与库内实际使用版的样式一致
  • 对当前 callout CSS 做最终整理核对,保留必要的防御性规则,避免误删导致回归

v2.0.2 主要补充了:

  • 根据实际渲染结构继续修正 quote 顶部空白与底部贴边问题
  • 统一 quote 卡片与 todo / tip 的内容区观感

v2.0.1 主要补充了:

  • 标签筛选支持 !tag 否定语义
  • 层级标签按 / 自动匹配整棵子标签树
  • 结果区顶部控件改为按实际可用宽度自动切换布局
  • 右侧新增批量折叠 callout 卡片按钮,并扩展为自动 / 折叠 / 展开三态逻辑

v2.0.0 的里程碑意义仍然成立:

  • 正式结束 MemoFlow / MemoFlow2 双主线
  • 确认 -MemoFlow-.md 为唯一官方主版本
  • 将历史脚本和旧版本移入 legacy/

如果你只想下载一个文件,请直接使用 -MemoFlow-.md

Related

How to Install

  1. Download the ZIP or clone the repository
  2. Open the folder as a vault in Obsidian (File → Open Vault)
  3. Obsidian will prompt you to install required plugins

Stats

Stars

11

Forks

1

Last updated 1mo ago

Categories