跳转到内容
灵墨笔记

不积跬步无以至千里:我的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 随机重访:思想的发酵

每几个月,我会用快捷键随机打开笔记,通过局部图谱查看相关内容。这个过程有三个作用:

  1. 发现意外连接:老想法和新想法产生化学反应
  2. 补全缺失链接:把之前未解析的链接变成实际笔记
  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脚本会:

  1. 读取本周所有日报文件
  2. 解析任务完成情况
  3. 按日期聚合,写入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 知识网络的效果

这套方法的本质是把散落在日报里的碎片信息,通过链接和标签组织成网

当我需要回顾一个项目的完整历史时,我可以:

  1. 打开项目笔记
  2. 查看它的反向链接,找到所有相关日报
  3. 用Dataview筛选特定时间段的内容
  4. 按标签分类查看(哪些是技术问题、哪些是产品讨论)

这种工作流让我能够「随时回到任何一个项目的任何一个时刻」,查看当时做了什么决定、解决了什么问题。这种能力在跨部门协作、交接工作、总结复盘时特别有用。


七、收益与持续优化

7.1 直接收益

使用这套系统两年多,我感受到的直接收益包括:

  • 汇报效率提升:以前写周报要翻聊天记录、邮件、文档,现在打开Excel就能看到本周所有任务。
  • 知识复用:同一个问题踩坑两次,第二次可以直接搜索日报找到第一次的解决方案。
  • 目标感增强:每天都有明确的任务,每周都能看到目标的推进,很少出现「不知道做了什么」的空虚感。
  • 焦虑减轻:大脑里的事情都记在笔记里,不需要靠脑子记所有事。

7.2 持续优化的方向

这套系统不是一成不变的。我会根据实际使用情况不断调整。借助与OpenCode等AI插件,优化工作变得更舒心惬意。 OpenCode 插件参考我的另一篇文章:

  • 模板优化:如果某个板块很少用到,就删掉;如果经常需要记录新的信息,就加上。
  • 脚本改进:导出Excel时发现格式不对,就改Python脚本;需要新的统计维度,就加字段。
  • 插件更新:Obsidian社区有很多新插件,我会尝试一些新工具(比如现在在测试的AI摘要插件),看能不能进一步提升效率。

最重要的一点是:系统要服务于目标,而不是让目标迁就系统。如果哪天写日报变成了负担,我就会简化流程;如果发现某个环节价值不大,我就会删掉它。


结语

日报周报系统本质上是一个个人知识管理系统。工具选什么不重要,重要的是能不能帮你把经历转化为能力、把碎片整合为系统。

我用Obsidian搭了这套系统,它适合我,未必适合所有人。但我相信一个原则:找到自己的工作节奏,然后用工具固化它

希望我的经验对你有参考价值。


编辑本页
扫描二维码分享
打开应用扫一扫,即可分享