不积跬步无以至千里:我的Obsidian日报周报系统
干货满满,我是老布。**点击关注**👆,防止迷路。
从2023年开始,我用Obsidian建立了一套日报周报系统。这套系统帮助我从「不知道时间花在哪」变成了「清楚知道每周完成了什么、还有什么要做」。更重要的是,它让我的工作经历变成了可检索、可复用的知识资产。
这篇文章分享我是如何搭建和运行这套系统的。
一、为什么要写日报周报
1.1 目标管理的最小单元
我习惯把大目标拆解到周,再把周目标拆解到日。日报不是流水账,而是当天需要攻克的「最小目标单元」。每天结束的时候,我能在日报里看到:今天的目标是什么、完成了多少、遇到了什么问题。
周报则是更宏观的检验。我会在周末花15分钟回顾这一周:哪些目标达成了、哪些延期了、原因是什么。这种「日清周结」的节奏,让目标不再是年初写完就忘记的Flag,而是每天都在推进的实际行动。
1.2 日程规划与优先级
没有记录的日程规划是模糊的。我每天早晨会在日报里写下当天最重要的3件事,给它们标注优先级。Day Planner插件会帮我把这些任务可视化到时间轴上,让我知道什么时候该专注做什么。
周计划则是日程规划的中继站。我会在周报里规划下一周的重点任务,确保每天的日报有明确的方向。这种「周计划→日执行→周复盘」的闭环,让我很少出现「不知道今天该干什么」的迷茫。
1.3 知识沉淀与经验复用
日报周报另一个重要价值是把经历变成知识。我会在日报里记录项目进展、技术方案、踩坑经验,这些内容在当下可能只是「工作记录」,但几个月后当我遇到类似问题时,可以通过搜索和反向链接快速找回之前的解决方案。
很多次我忘记了一个配置怎么调、一个问题怎么排查,最后都是靠搜索日报笔记找到的答案。如果没有这些记录,我可能要重新花时间去查文档、试错、甚至向同事请教。日报周报本质上是给自己的「第二大脑」做知识备份。
1.4 每日记录的深层意义
写日报这件事,看起来简单,但坚持下来需要方法。我把每日记录当作「大脑外置」的工具——把任务、想法、信息从脑子里挪到笔记里,脑子就能腾出来做更重要的思考。
另一个意义是减少焦虑。有时候工作一多,会觉得「什么都做不完」。但当我把任务一条条写在日报里,焦虑感会减轻很多——因为我能看到具体要做什么,而不是面对一团模糊的压力。
还有一个意义是追踪成长。每隔几个月回顾日报,能清楚看到自己这段时间做了什么、学了什么、解决了什么问题。这种可视化的成长记录,比任何 KPI 都更能给我正向反馈。
二、Obsidian方法论
参考:How I use Obsidian - Steph Ango
2.1 核心哲学:自下而上的知识构建
我的方法论受到Steph Ango的启发,核心是自下而上而非自上而下。这意味着我不预设复杂的分类体系,而是让知识自然地从日常记录中涌现出来结构。
这种方法拥抱混沌和懒惰——不是消极的懒惰,而是”聪明的懒惰”。我不会为每个笔记纠结放在哪个文件夹,而是先记录下来,让链接和标签在后期自然形成网络。
2.2 基本原则
文件优于应用:所有笔记都是独立的Markdown文件,格式开放,即使不用Obsidian也能在其他工具中访问。这是数字资产的长期保障。
链接优先于分类:我大量使用内部链接,每个概念的第一次提及都会建立链接。这些链接(包括未解析的链接)是未来知识网络的种子。
一致性决策:我为自己制定了一些简单规则,避免每天重复思考格式问题:
- 所有标签使用复数形式
- 日期格式统一为YYYY-MM-DD
- 每周只有一个待办清单
- 避免嵌套文件夹
2.3 工作流的三个层次
2.3.1 日常记录:思想的种子
受Steph的”fractal journaling”启发,我使用多层次记录:
即时想法(实时记录):用快捷键随时捕捉想法,文件名格式为YYYY-MM-DD HHmm 标题.md。这些是思想的原始种子。
日报整合(每日处理):每天晚上,我会浏览当天的想法碎片,把重要的整理到日报中。这个过程就像把散落的种子播种到合适的田地。
2.3.2 链接网络:思想的关系网
Steph说”Unresolved links are breadcrumbs for future connections”。我深以为然。在日报里,我会链接到:
- 项目笔记:
[[Project项目]] - 概念笔记:
[[用户调研]] - 人物笔记:
[[张三]] - 参考资料:
[[《精益创业》]]
这些链接在当下可能有些”未解析”(目标笔记还不存在),但它们像面包屑一样,为未来的知识连接指引方向。
2.3.3 随机重访:思想的发酵
每几个月,我会用快捷键随机打开笔记,通过局部图谱查看相关内容。这个过程有三个作用:
- 发现意外连接:老想法和新想法产生化学反应
- 补全缺失链接:把之前未解析的链接变成实际笔记
- 知识维护:按照新的风格指南修复格式
2.4 模板与属性的平衡
我的模板系统吸取了Steph的理念:模板应该支持懒惰,而不是增加负担。
每个类别都有对应模板,但属性设计遵循以下原则:
- 跨类别可重用:如
genre在书籍、电影、项目中都有意义 - 可组合性:一个笔记可以同时使用多个模板
- 简洁命名:用
author而不是author-name
这种设计让我在添加信息时”偷懒”,但事后却能准确找到内容。
2.5 我的日报工作流
基于上述方法论,我的日报工作流是:

早晨规划(5分钟):打开日报模板,基于昨日的”明日待办”和周计划制定今日目标。 白天执行(贯穿全天):完成任务后立即在日报中记录,遇到相关概念就建立链接。 晚间复盘(10分钟):回顾今日完成情况,提取重要想法放入”想法碎片”,规划明日优先级。
这个流程不是僵化的规则,而是适应我思维习惯的骨架。真正的价值在于日复一日的坚持中自然涌现的知识网络。
三、系统架构
3.1 核心工具链
整个系统由以下工具组成:
-
Obsidian:笔记管理和日常记录的入口
-
Calendar插件:可视化日期,选择任意一天快速跳转
-
Day Planner插件:时间轴任务管理,替代简单的待办清单
-
Dataview插件:基于标签和路径查询笔记内容
-
DataviewJS插件:用JavaScript动态生成周报视图
-
Templater插件:自定义模板,快速生成标准化的日报周报
-
Python脚本:解析日报,导出到Excel
-
Shell脚本:一键执行导出命令
3.2 目录结构
我的Obsidian目录遵循数字前缀排序,这样最常用的文件夹会排在最前面:
├── 0-Books/ # 当前阅读的书籍
├── 1-Work/ # 工作相关(最重要的文件夹)
│ └── Project/ # 当前项目
│ ├── 1-Daily Notes/ # 日报目录
│ └── 1-Weekly Notes/ # 周报目录
├── 2-Life/ # 生活琐事和个人事务
├── 3-Writing/ # 写作草稿和文章
├── 5-Knowledge/ # 研究笔记和知识库
├── 7-BookLibs/ # PDF和电子书
├── 8-zhihu/ # 知乎收藏文章
├── Excalidraw/ # 绘图和图解
└── Attachment/ # 附件和资源
其中日报和周报是最核心的目录。日报按日期命名(如 2026-01-22.md),周报按周命名(如 2026-W04.md)。
3.3 标签系统
我使用层级标签来分类内容:
#status/reading、#status/completed:阅读状态#type/book-summary、#type/article:内容类型#project/active、#project/done:项目进展
标签不仅用于分类,也是Dataview查询的依据。比如我想查看「所有跟Project项目相关的日报」,只需要搜索 #project/Project,就能快速筛选出来。
四、模板设计
采用本文所述的方法建立日报和周报模版后,在日历上点击日期就会加载这些模版,自动创建一个格式化的日报和周报。如下图所示,日期和周号下方会自动生成一个状态原点,实心点表示任务已经全部完成,空心点表示还有未完成任务。

4.1 日报模板
日报模板包含以下板块:
---
tags:
- dailytasks
---
## 🎯 一周目标
\`\`\`dataviewjs
dv.taskList(dv.pages('"1-Work/Project/1-Weekly Notes"').sort((page) => page.file.ctime, "desc").file.tasks.where(t => !t.completed))
\`\`\`
## Day planner
- [ ] task (hour:: 1)
- [ ] task (hour:: 1)
- [ ] task (hour:: 1)
- [ ] task (hour:: 1)
- [ ] task (hour:: 1)
## 📝 其他记录
## 💡 灵感想法
-
4.2 周报模板
周报模板包含本周总结和下周计划:
---
tags:
- weeklynotes
---
## 一周目标
- [ ] weekly task1
## 周报
// 这里用DataviewJS脚本自动生成本周任务完成情况,具体见下文。
采用此DataviewJS脚本 可以随时生成一份精美的格式化周报,而不必手动总结日报中的内容。例如:

五、自动化导出
本文中提到的所有脚本都可以在如下网盘上找到: 链接: https://pan.baidu.com/s/5zQS5J7I-Z2tHQ-5zMBvAHg
5.1 DataviewJS快速生成周报
在Obsidian内部,我用DataviewJS写了一个脚本,用来快速生成周报视图。这个脚本会查询本周所有日报,按任务状态分类统计,直接在周报页面渲染出来,有需要的尽管拿去使用。
const dairyNotes = dv.pages('"1-Work/Project/1-Daily Notes"')
.filter(page => {
const filenameMatch = page.file.name.match(/^(\d{4}-\d{2}-\d{2})/);
if (!filenameMatch) return false;
const dateStr = filenameMatch[1];
return dateRange.includes(dateStr);
})
.sort(page => page.file.name);
// 检查是否有笔记
if (dairyNotes.length === 0) {
dv.el("div", "📝 本周没有日记记录", {
cls: "empty-notes",
attr: {
style: "text-align: center; padding: 20px; color: #95a5a6; font-style: italic; border: 1px dashed #bdc3c7; border-radius: 5px;"
}
});
} else {
// 显示统计信息
dv.el("div", `📊 本周共有 ${dairyNotes.length} 条日记记录`, {
cls: "stats",
attr: {
style: "background-color: #e8f4f8; padding: 10px 15px; border-radius: 5px; margin-bottom: 20px; font-weight: bold; color: #2980b9;"
}
});
dv.table(
["星期", "日期", "任务内容", "类型", "耗时", "状态"], // 修改列标题为"类型"
dairyNotes.flatMap((note, noteIndex) => {
const tasks = note.file.tasks || [];
let firstTask = true;
return tasks.length > 0
? tasks.map(task => {
// 过滤指定符号及其后续内容
const filteredText = task.text.replace(/[📅⏳🛫⏫🔼🔽✅#\(].*/, '').trim();
// 获取任务中的所有外链文件(通过 task.outlinks)
const linkedFiles = task.outlinks || [];
// 提取每个外链文件的"类型"属性,无则显示"无类型"
const linkedFileTypes = linkedFiles.map(linkedFile => {
const page = dv.page(linkedFile);
if (page && page.file && page.file.frontmatter) {
return dv.page(linkedFile).file.frontmatter.Type || "无类型";
} else {
return "无类型";
}
});
// 合并类型显示(多个类型用逗号分隔,无外链则显示"无外链文件")
const typeDisplay = linkedFiles.length > 0
? linkedFileTypes.join(", ")
: "项目";
const taskStatus = task.completed
? "已完成"
: "未完成"
const weekday = firstTask ? getWeekday(note.file.name) : "";
const date = firstTask ? `[[${note.file.name}]]` : "";
const timeSpent = task.hour || "";
firstTask = false;
return [
weekday,
date,
filteredText || "无有效任务内容",
typeDisplay,
timeSpent,
taskStatus,
];
})
: [[
`[[${note.file.name}]]`,
"无任务记录",
"无外链文件" // 无任务时显示无外链文件
]];
}),
"weekly-table"
);
} // 确保else代码块正确闭合
5.2 Python脚本导出Excel
有时候需要正式的周报文档发给同事或领导,我就用Python脚本把日报数据导出到Excel。
Python脚本会:
- 读取本周所有日报文件
- 解析任务完成情况
- 按日期聚合,写入Excel的对应Sheet
用法: python3 weekly_export.py <周报文件名>
示例: python3 weekly_export.py 2026-W03
默认输出: <我的目录>/我的周报.xlsx
5.3 Shell脚本一键执行
为了更方便,我把Python脚本封装成Shell命令:
./weekly_export.sh 2026-W03
脚本会自动计算当前周数,调用Python脚本执行导出。执行完成后,Excel文件已经更新好本周的Sheet。
六、高级用法:反向链接与项目总结
6.1 项目笔记作为信息枢纽
每个重要项目都会有一份主笔记(比如 Project项目.md)。这份笔记记录项目背景、目标、关键里程碑,以及——最重要的——指向所有相关日报的反向链接。
在日报里,我会这样链接到项目:
今天完成了Project项目的用户调研 [[Project项目]]
这样一来,日报和项目笔记就建立了双向连接。从日报可以跳转到项目,从项目可以看到所有相关的日报记录。
6.2 用Dataview按项目聚合日报
如果我想查看Project项目这周的进展,只需要写一个Dataview查询:
TABLE file.name AS 日期, text AS 任务内容
FROM "1-Work/Project/1-Daily Notes"
WHERE contains(text, "Project")
这个查询会列出本周所有提到「Project」的日报任务。项目进展不再需要单独整理,查询一下就有了。
6.3 知识网络的效果
这套方法的本质是把散落在日报里的碎片信息,通过链接和标签组织成网。
当我需要回顾一个项目的完整历史时,我可以:
- 打开项目笔记
- 查看它的反向链接,找到所有相关日报
- 用Dataview筛选特定时间段的内容
- 按标签分类查看(哪些是技术问题、哪些是产品讨论)
这种工作流让我能够「随时回到任何一个项目的任何一个时刻」,查看当时做了什么决定、解决了什么问题。这种能力在跨部门协作、交接工作、总结复盘时特别有用。

七、收益与持续优化
7.1 直接收益
使用这套系统两年多,我感受到的直接收益包括:
- 汇报效率提升:以前写周报要翻聊天记录、邮件、文档,现在打开Excel就能看到本周所有任务。
- 知识复用:同一个问题踩坑两次,第二次可以直接搜索日报找到第一次的解决方案。
- 目标感增强:每天都有明确的任务,每周都能看到目标的推进,很少出现「不知道做了什么」的空虚感。
- 焦虑减轻:大脑里的事情都记在笔记里,不需要靠脑子记所有事。
7.2 持续优化的方向
这套系统不是一成不变的。我会根据实际使用情况不断调整。借助与OpenCode等AI插件,优化工作变得更舒心惬意。 OpenCode 插件参考我的另一篇文章:
- 模板优化:如果某个板块很少用到,就删掉;如果经常需要记录新的信息,就加上。
- 脚本改进:导出Excel时发现格式不对,就改Python脚本;需要新的统计维度,就加字段。
- 插件更新:Obsidian社区有很多新插件,我会尝试一些新工具(比如现在在测试的AI摘要插件),看能不能进一步提升效率。
最重要的一点是:系统要服务于目标,而不是让目标迁就系统。如果哪天写日报变成了负担,我就会简化流程;如果发现某个环节价值不大,我就会删掉它。
结语
日报周报系统本质上是一个个人知识管理系统。工具选什么不重要,重要的是能不能帮你把经历转化为能力、把碎片整合为系统。
我用Obsidian搭了这套系统,它适合我,未必适合所有人。但我相信一个原则:找到自己的工作节奏,然后用工具固化它。
希望我的经验对你有参考价值。
编辑本页
