前言
天真的以为BUJO这种很适合我,每天会花几分钟记录一下。结果发现是自己想多了,,但愿未来真的会这样管理好自己。。。。(吧)
前提
主要是使用obsidian进行记录,同时需要配合插件实现部分环节的自动化。
- Periodic Notes。在规定的时间建立新的文档。
- Dataview。数据统计。
- Templates。BUJO模板制作。
- Obsidian Charts。用于统计图绘制。
- HabitGrids。用于跟踪习惯打卡。
- KANBAN。看板面板。
- Metadata Menu。类似notion的存在。
BUJO清单
这一部分是作为独立的存在,可以单独使用,也可以结合BUJO,以年度为一个文件夹进行记录。
本部分内容结合了很多B站UP主和小红薯上的的BUJO模块分享。
整个OB文件夹的设置可参考:https://sicza.com/2023/0705/obsidian.sic
年度计划
年度计划使用了 kanban 来进行记录,分成了若干个项目记录。
- 事业
- 理财
- 思维
- 提升
- 健康
- 人际
- 家人
- 能力
自我剖析
这一部分的问题来自B站UP主ElenaLin_青青分享的notion模板。
🐮个人性格
🐮 因为自己性格发生的好事有哪些?
🐮 因为自己性格引来的麻烦有哪些?
🐮 以后可以怎么办?
😊 决策方式
😊 有哪件比较重要的事情是选择得对的?当时怎么选择的?
😊 有哪件比较重要的事情是选择得不太好的?当时怎么选择的?
😊 以后怎样可以更好?
😈 冲突处理
😠 还记得的上一次和别人有矛盾的时候是什么事情?
😠 遇到这个矛盾的第一反应是什么?思考决策?马上冲过去?立即避开?
😠 当时你是怎么解决的?
😠 有没有发现遇到冲突的重复性的行为?
😠 以后可以如何更好地解决冲突?
👴 人生策略
🏃 如果我的日子只剩下一天,我会去做什么?
🏃 如果我的日子只剩下一年,我会去做什么?
🏃 如果我有无限的资金资源,我会怎样去使用它来改变世界?
🏃 完美的伴侣关系在我眼中是怎样的?那完美的人生应该是怎样的?以及完美的家庭生活呢?
购物清单

购物清单分成三个阶段,分别是【已购】【在考虑】【回购】。设置了4个不同的需求程度:
🤩LOVE 给生活带来长久影响的物品
😀NEED 生活中必须拥有的物品
😋LIKE 带来愉悦不超过六个月的物品
🤔WANT 带来暂时性满足的物品
参数设置
---
mapWithTag: ture
---
需求程度:: {"type":"Select","options":{"valuesList":{"1":"🤩LOVE","2":"😀NEED","3":"😋LIKE","4":"🤔WANT","5":"😐REMOVED"},"sourceType":"ValuesList","valuesListNotePath":"","valuesFromDVQuery":""}}
产品:: {"type":"Input","options":{}}
日常价格:: {"type":"Number","options":{}}
购入价格:: {"type":"Number","options":{}}
状态:: {"type": "Select","options":{"valuesList":{"1": "已购入","2": "再考虑","3": "愿望单"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
购入时间:: {"type": "Date","options":{"dateFormat": "YYYY-MM-DD","defaultInsertAsLink": "false"}}
归档:: {"type":"Select","options":{"valuesList":{"1":"2022年","2":"2023年","3": "2024年"},"sourceType":"ValuesList","valuesListNotePath":"","valuesFromDVQuery":""}}
回购:: {"type":"Boolean","options":{}}
类型:: {"type": "Multi","options":{"valuesList":{"1": "电子产品","2": "小家电","3": "数码产品","4": "生活用品","5": "丸子的家当"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
备注:: {"type":"Input","options":{}}
心愿单模板
---
title:
banner:
banner_icon:
creation date: <% tp.file.creation_date() %>
modification date: <%+ tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm:ss") %>
---
<% await tp.file.move("DATA/03-SHOPPING/" + ((tp.file.title.includes("未命名") || tp.file.title.toLowerCase().includes("untitled")) ? (await tp.system.prompt("请输入要创建的文件名")) : tp.file.title)) %>
🕥 Time: <% createTime %>
🔖 TAG::
### 💰 基本信息
#shopping
状态::
产品::
类型::
需求程度::
日常价格::
购入价格::
购入时间::
归档::
回购::
备注::
---
### 💰 物品信息
![shop]()
京东链接:
淘宝链接:
张大妈最低价:
购物清单模板
举例:
```dataview
table 类型,日常价格,需求程度,购入价格,购入时间,备注
from #shopping
where contains(file.folder,"03-SHOPPING")
where 状态="愿望单"
where 归档="2023年"
sort file.mtime desc
```
影视清单

参数设置
---
mapWithTag: ture
---
名称:: {"type":"Input","options":{}}
完结状态:: {"type":"Select","options":{"valuesList":{"1":"更新中","2":"已完结","3":"待映"},"sourceType":"ValuesList","valuesListNotePath":"","valuesFromDVQuery":""}}
总集数:: {"type":"Number","options":{}}
已看到:: {"type":"Number","options":{}}
开始时间:: {"type":"Date","options":{"dateFormat":"YYYY-MM-DD","defaultInsertAsLink":"false"}}
更新时间:: {"type":"Date","options":{"dateFormat":"YYYY-MM-DD","defaultInsertAsLink":"false"}}
评分:: {"type": "Select","options":{"valuesList":{"1": "⭐⭐⭐⭐⭐","2": "⭐⭐⭐⭐","3": "⭐⭐⭐","4": "⭐⭐","5": "⭐"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
状态:: {"type": "Select","options":{"valuesList":{"1": "正在看","2": "准备看","3": "看完了"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
归档:: {"type": "Select","options":{"valuesList":{"1": "2022年","2": "2023年","3": "2024年"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
备注:: {"type": "Input","options":{}}
进度:: {"type":"Input","options":{"template":""}}
电影模板
需要配合插件 Douban 获取电影信息。
---
banner: {{image}}
banner_icon:
creation date: <% tp.file.creation_date() %>
modification date: <%+ tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm:ss") %>
---
<% await tp.file.move("DATA/02-MOVIE/" + ((tp.file.title.includes("未命名") || tp.file.title.toLowerCase().includes("untitled")) ? (await tp.system.prompt("请输入要创建的文件名")) : tp.file.title)) %>
### 🎥 基本信息
#movie
状态::
名称:: {{title}}
片长:: {{time}}
上映时间:: {{datePublished}}
更新时间::
评分::
归档::
备注::
## 🎥 [ {{title}} ]( {{url}} )

📄**导演**:: {{director}}
📄**编剧**:: {{author}}
📄**主演**:: {{actor}}
📄**类型**:: {{genre}}
📄**地区**:: {{country}}
📄**语言**:: {{language}}
📄**上映时间**:: {{datePublished}} ( {{country}} )
📄**片长**:: {{time}}
📄**又名**:: {{aliases}}
📄**IMDb**:: {{IMDb}}
📄**豆瓣评分**:: <font color="#76923c"> {{score}} </font>
## 🎥 {{title}}的剧情简介
{{desc}}
## 🎬 评价
{{myTags}} - {{myCollectionDate}}
## 🎬 NOTES
---
清单模板
整个清单分为4个阶段:
1. 正在看的 - 已完结或正在更新,且正在观看的剧集。
2. 准备看的 - 已完结或正在更新,预备观看的剧集。
3. 待映影视库 - 正在更新或预备更新的剧集。
4. 看完啦 - 已观看结束的剧集。
举例:
```dataview
table 豆瓣评分,语言,首播,完结状态,进度,评分,备注
from #movie
where contains(file.folder,"02-MOVIE")
where 状态="正在看"
where 归档="2023年"
sort file.mtime desc
```
阅读清单

参数设置
---
mapWithTag: true
limit: 100
icon: clipboard-list
tagNames: null
excludes: null
extends: null
version: 1
---
书名:: {"type":"Input","options":{}}
总页数:: {"type":"Number","options":{}}
阅读进度:: {"type":"Input","options":{}}
开始时间:: {"type":"Date","options":{"dateFormat":"YYYY-MM-DD","defaultInsertAsLink":"false"}}
结束时间:: {"type":"Date","options":{"dateFormat":"YYYY-MM-DD","defaultInsertAsLink":"false"}}
评分:: {"type": "Select","options":{"valuesList":{"1": "⭐⭐⭐⭐⭐","2": "⭐⭐⭐⭐","3": "⭐⭐⭐","4": "⭐⭐","5": "⭐"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
状态:: {"type": "Select","options":{"valuesList":{"1": "正在读","2": "准备读","3": "读完了"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
归档:: {"type": "Select","options":{"valuesList":{"1": "2022年","2": "2023年","3": "2024年"},"sourceType": "ValuesList","valuesListNotePath": "","valuesFromDVQuery": ""}}
备注:: {"type":"Input","options":{}}
读书笔记模板
同样需要插件 Douban 配合数据抓取。
---
banner: {{image}}
banner_icon:
creation date: <% tp.file.creation_date() %>
modification date: <%+ tp.file.last_modified_date("dddd Do MMMM YYYY HH:mm:ss") %>
---
<% await tp.file.move("DATA/01-BOOK/" + ((tp.file.title.includes("未命名") || tp.file.title.toLowerCase().includes("untitled")) ? (await tp.system.prompt("请输入要创建的文件名")) : tp.file.title)) %>
### 基本信息
#book
状态::
书名:: {{title}}
总页数:: {{totalPage}}
阅读进度:: <progress value=" " max=" {{totalPage}} "></progress>
开始时间::
结束时间::
评分::
归档::
备注::
## 📚 [ {{title}} ]( {{url}} )

📄 **副标题**:: {{subTitle}}
📄 **类型**:: {{series}}
📄 **作者**:: {{author}}
📄 **译者**:: {{translator}}
📄 **出版社**:: {{publisher}}
📄 **页数**:: {{totalPage}}
📄 **出版年**:: {{datePublished}}
📄 **ISBN**:: {{isbn}}
📄 **豆瓣评分**:: {{score}}
---
## 📚 简介
{{desc}}
## 📄 评价
{{myTags}} - {{myCollectionDate}}
---
## 📝 NOTES
> [!Note] 引自:章节、页码
> 摘录
>
迭代
---
> [!Note] 引自:章节、页码
> 摘录
>
迭代
---
清单模板
```dataview
table 作者,类型,出版社,阅读进度,结束时间,评分,备注
from #book
where contains(file.folder,"01-BOOK")
where 状态="正在读"
where 归档="2023年"
sort file.mtime desc
```
框架结构
每天会在当周的文件夹中生成日记文件,每周会自动建立一个周文件夹,需要手动触发(可以通过日历插件)建立每周总结、月度总结、季度总结、年度总结。
日记
日记分成了三个部分,第一个部分是数据记录,这里的记录会被统计到每周、每月、季度、年度总结中。
🕥 << [[<% tp.date.now("YYYY-MM-DD", -1, tp.file.title, "YYYY-MM-DD") %>]] | [[<% tp.date.now("YYYY-MM-DD", 1, tp.file.title, "YYYY-MM-DD") %>]]>>
⛅ Weather:: ☀晴 ☁云 🌧雨
😴 Sleep::
😆 Mood::
⏱ Work Time::
✏️ Efficiency::
🏃♂️ Exercise::
📖 Reading::
🏊♀️ Body Weight::
第二个部分是今日计划:
> [!quote] 一句话总结
> 一句话总结
## 😆GOOD MORNING
---
### ⚡(重点)今天做出什么改变来实现我的梦想?
- [ ] 待办事项
- [ ] 待办事项
### ⚡今天要完成的事情
- [ ] 待办事项
- [ ] 待办事项
### ⚡今日FLAG:
#💪每日
flag::
## 😴KEEP GOING
---
### ⚡目前情况如何?
- [ ] 1111
- [ ] 222
### ⚡下午有什么计划?
- [ ] 1111
- [ ] 222
## ⏱HOW DID IT GO?
---
### 👀今天还完成了什么?
- [ ] 2
- [ ] 2
### 👂有什么意外?
- [ ] 111
- [ ] 222
最后一个部分用来总结和记录,同时还有OB里的MEMO记录。
## 📖FREE WRITING(随便写写)
---
## ✏️DIARY(总结)
---
### 👩🏻🎓 学到了什么?
#💪每日
learn::
### 💡 能提高的地方
#💪每日
upgrade::
## ✍️Journal
每周总结
第一个部分是当周的日记统计:
```dataviewjs
window.pages = dv.pages(`"${dv.current().file.folder}"`).where(p => p.file.name.match(new RegExp(`${dv.current().file.name.split('-')[0]}-\\d{2}-\\d{2}`))).sort(p => p.file.name);
dv.paragraph(window.pages.file.link.join(', '))
```
第二部分是当周的效率曲线,数据来自每天的✏️ Efficiency
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Efficiency']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Efficiency',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 0,
max: 5
}
}
}
}
window.renderChart(chartData, this.container);
```
第三部分来自当周的总结,
## 💪本周回顾
### ⚡ 未完成事项(本周计划中没有完成的工作是什么?)
- [ ] 待办事项
- [ ] 待办事项
### ⚡ 计划外事项(本周我并没有计划的项目,但需要我完成。)
- [ ] 待办事项
- [ ] 待办事项
### ⚡ 涨了新姿势
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 💡️ 我想改进的/我希望的
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 🔥本周做过的决策复盘
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
---
## 📖FREE WRITING(随便写写)
---
## ✏️DIARY(总结)
---
### 👩🏻🎓 学到了什么?
#💪每日
learn::
### 💡 能提高的地方
#💪每日
upgrade::
## ✍️Journal
---
最后一个部分是来自当周的数据统计,数据来源就是日记中第一部分。
## 😴睡眠质量统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Sleep']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Sleep Time',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 2,
max: 13
}
}
}
}
window.renderChart(chartData, this.container);
```
## 🙈跟踪
```toggl
LIST
WEEK
```
## 😆心情统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Mood']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Mood',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 0,
max: 5
}
}
}
}
window.renderChart(chartData, this.container);
```
## 🏊♀️体重变化
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Body Weight']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Body Weight',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 70,
max: 200
}
}
}
}
window.renderChart(chartData, this.container);
```
## ⏱工作时间统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(parseInt(page['Work Time']));
}
const chartData = {
type: 'bar',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Work Time',
data: times,
backgroundColor: '#ff98005c',
borderColor: '#ff9800',
borderWidth: 2,
}],
},
}
window.renderChart(chartData, this.container);
```
## 🏃♂️运动统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(parseInt(page['Exercise']));
}
const chartData = {
type: 'bar',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Exercise',
data: times,
backgroundColor: '#ff98005c',
borderColor: '#ff9800',
borderWidth: 2,
}],
},
}
window.renderChart(chartData, this.container);
```
## 📖阅读时间统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Reading']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Reading',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 0,
max: 5
}
}
}
}
window.renderChart(chartData, this.container);
```
月度总结
第一部分依旧是当月的日记汇总
```dataviewjs
window.pages = dv.pages().where(p => p.file.name.match(new RegExp(`${dv.current().file.name}-\\d{2}`))).sort(p => p.file.name);
dv.paragraph(window.pages.file.link.join(', '))
```
当月的效率曲线
## 😴效率曲线
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Efficiency']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Efficiency',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 0,
max: 5
}
}
}
}
window.renderChart(chartData, this.container);
```
第二部分则是本月回顾
## 📁️本月回顾
---
### 👨💼 工作回顾
#work
Rating::
income::
expenses::
overspend:: ture
### 📌 重大事件记录
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 🎉 本月实现的目标
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 💨 需要反思的地方
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 📝 碎碎念
---
## 🍋下月规划
### ⚡上个月遗留问题
- [ ] 待办事项
- [ ] 待办事项
> [!col4-left-lightorange] 💢WEEK1
> 💤目 标
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
>
> 💤任 务
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> [!col4-left-lightorange] 💢WEEK 2
> 💤目 标
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
>
> 💤任 务
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> [!col4-left-pink] 💢 WEEK 3
> 💤目 标
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
>
> 💤任 务
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> [!col4-right-lightyellow] 💢 WEEK 4
> 💤目 标
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
>
> 💤任 务
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
---
## 🍜 下月生活安排
💡You can’t always control life. It’s okay to be sad.
> [!col3-left-lightorange] 🎥 MOVIE
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> [!col3-left-lightorange] 📚 READ
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> [!col3-right-pink] 🎈 OTHER
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
> - [ ] 吗咿呀嘿
---
## 📖FREE WRITING(随便写写)
---
## ✏️DIARY(总结)
---
### 👩🏻🎓 学到了什么?
#💪每日
learn::
### 💡 能提高的地方
#💪每日
upgrade::
## ✍️Journal
---
最后一个部分依旧是当月的数据统计
## 🙈跟踪
```toggl
LIST
MONTH
GROUP BY PROJECT
SORT DESC
```
## 😴睡眠质量统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Sleep']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Sleep Time',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 2,
max: 13
}
}
}
}
window.renderChart(chartData, this.container);
```
## 😆心情统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Mood']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Mood',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 0,
max: 5
}
}
}
}
window.renderChart(chartData, this.container);
```
## ⏱工作时间统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(parseInt(page['Work Time']));
}
const chartData = {
type: 'bar',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Work Time',
data: times,
backgroundColor: '#ff98005c',
borderColor: '#ff9800',
borderWidth: 2,
}],
},
}
window.renderChart(chartData, this.container);
```
## 🏃♂️运动统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(parseInt(page['Exercise']));
}
const chartData = {
type: 'bar',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Exercise',
data: times,
backgroundColor: '#ff98005c',
borderColor: '#ff9800',
borderWidth: 2,
}],
},
}
window.renderChart(chartData, this.container);
```
## 🏊♀️体重变化
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Body Weight']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Body Weight',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 70,
max: 200
}
}
}
}
window.renderChart(chartData, this.container);
```
## 📖阅读时间统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Reading']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Reading',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 0,
max: 5
}
}
}
}
window.renderChart(chartData, this.container);
```
季度总结
季度总结没有统计,都是要自己写的。
## 📁️本季度回顾
---
### 👨💼 工作回顾
#work
Quarter::
### 📌 重大事件记录
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 🎉 本季度实现的目标
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 💨 需要反思的地方
1. 吗咿呀嘿
2. 吗咿呀嘿
3. 吗咿呀嘿
### 📝 碎碎念
---
## 🍋下季度规划
### ⚡上个季度遗留问题
- [ ] 待办事项
- [ ] 待办事项
### 🚴工作
- [ ] 待办事项
- [ ] 待办事项
### 🎨生活
- [ ] 待办事项
- [ ] 待办事项
### 👀个人
- [ ] 待办事项
- [ ] 待办事项
### 📍其他
- [ ] 待办事项
- [ ] 待办事项
---
## 📖FREE WRITING(随便写写)
---
## ✏️DIARY(总结)
---
### 👩🏻🎓 学到了什么?
#💪每日
learn::
### 💡 能提高的地方
#💪每日
upgrade::
## ✍️Journal
年度总结
所有的日记汇总
```dataviewjs
window.pages = dv.pages().where(p => p.file.name.match(new RegExp(`${dv.current().file.name}-\\d{2}-\\d{2}`))).sort(p => p.file.name);
console.log(window.pages);
```
自我剖析,内容依旧是来自青青大佬的模板
## 🍺自我剖析
### 🎨身边的人
> [!quote] 关键问题
> 这一年最应该感谢的人都有哪些?
> 他们给了我什么?我是怎么回报他们的?
> 谁最重要?最值得被感谢?他们是否知道对我的帮助很大?
### 👀 经验教训
> [!quote] 关键问题
>今年有哪些重大的经验教训?
>他们为什么会发生?
>未来应当如何避免。
### ☘ 经历
> [!quote] 关键问题
>这一年最难忘的事情与经历
>他们对我意义是什么
>从中学到了什么?若再来一次,我会怎么做
>最开心的经历有哪些
>最不开心的经历有哪些
### 📓 学到的知识
> [!quote] 关键问题
>学到最棒的东西是什么?
>这些知识如何改变我的行为/思考模式?
### ⚖ 事物
> [!quote] 关键问题
> 这一年有哪些事物最值得感谢
> 对我人生的影响再哪儿?
> 我需要对他们做什么调整?
### 💊 需要提高的领域
> [!quote] 关键问题
> 生活中哪些领域需要提高
> 提高的具体方法有想过么?
> 为啥要提高这些领域。
### 🩹成就
> [!quote] 关键问题
>这一年最大的成就是什么
>对我未来的意义是什么?
### 🐮关于自我
> [!quote] 关键问题
>对自己的长处和短处是否有了新的认识
>是否找到了自己生活的动力
>价值观,愿景,原则等长远的事情是否改变
>明年我想成为什么样的人
>明年的最大目标是?
>目前有什么困难?我将如何克服
接着是年度目标达成和信息回顾。
## 🐮年度目标达成情况
### 💻工作
#work
year::
- [ ] 待办事项
- [ ] 待办事项
### 👀生活
- [ ] 待办事项
- [ ] 待办事项
### 👣个人
- [ ] 待办事项
- [ ] 待办事项
### 👻其他
- [ ] 待办事项
- [ ] 待办事项
## 📙 工作成绩回顾
```dataview
table Rating as 月评级,Quarter as 季度评级, year as 年度评级
from #work
where contains(file.folder,"2023")
sort file.mtime desc
```
## 📘 学到的事
```dataview
table learn as 👩🏻🎓学到了什么,upgrade as 💡能提高的地方
from #💪每日
where contains(file.folder,"2023")
sort file.mtime desc
```
## 📙 三句话日记
```dataview
table freewriting as 📖随便写写
from #💪每日
where contains(file.folder,"2023")
sort file.mtime desc
```
## 😋 FLAG
```dataview
table flag as 😋FLAG
from #💪每日
where contains(file.folder,"2023")
sort file.mtime desc
```
## 😋 MEMO
```dataview
table flag as 😋MEMO
from #memo
where contains(file.folder,"2023")
sort file.mtime desc
```
## 💰 财务状态
> [!light-gray]
> 📢 详情请看 鲨鱼记账
```dataview
table income as 当月收入,expenses as 当月支出,overspend as 是否超支
from #work
where contains(file.folder,"2023")
sort file.mtime desc
```
以及年度统计
## ☕年度统计
```dataviewjs
const calendarData = {
entries: [],
}
let i = 1;
for(let page of pages.sort(p=>p.file.name)){
calendarData.entries.push({
date: page.file.name,
intensity: i++,
})
}
console.log(calendarData)
renderHeatmapCalendar(this.container, calendarData)
```
## 🙈跟踪
```toggl
LIST
FROM 2023-01-01 TO 2023-12-31
GROUP BY PROJECT
SORT DESC
```
## 😴睡眠达标统计
```dataviewjs
const calendarData = {
entries: [],
}
const pages = window.pages
.where(p => p.Sleep && p.Sleep >= 6.5 && p.Sleep <= 8.5)
.sort(p => p.file.name);
for(let page of pages){
calendarData.entries.push({
date: page.file.name,
intensity: page.Sleep,
})
}
renderHeatmapCalendar(this.container, calendarData)
```
## 😴睡眠时间统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Sleep']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Sleep Time',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 2,
max: 13
}
}
}
}
window.renderChart(chartData, this.container);
```
## 😆心情统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(page['Mood']);
}
const chartData = {
type: 'line',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Mood',
data: times,
pointBackgroundColor: '#6c40d6',
borderColor: '#6c40d65c',
tension: 0.4,
spanGaps: true,
}],
},
options: {
scales: {
y: {
type: 'linear',
min: 0,
max: 5
}
}
}
}
window.renderChart(chartData, this.container);
```
## ⏱工作时间统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(parseInt(page['Work Time']));
}
const chartData = {
type: 'bar',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Work Time',
data: times,
backgroundColor: '#ff98005c',
borderColor: '#ff9800',
borderWidth: 2,
}],
},
}
window.renderChart(chartData, this.container);
```
## 🏃♂️运动统计
```dataviewjs
const times = [];
for (let page of window.pages) {
times.push(parseInt(page['Exercise']));
}
const chartData = {
type: 'bar',
data: {
labels: window.pages.file.name.array(),
datasets: [{
label: 'Exercise',
data: times,
backgroundColor: '#ff98005c',
borderColor: '#ff9800',
borderWidth: 2,
}],
},
}
window.renderChart(chartData, this.container);
```
后记
注意事项
相关文章参考
ElenaLin_青青:实现梦想的2023年电脑计划本 ‼ 免费Notion模板
DIYgod大佬:基于 Obsidian 的生活记录系统
声明: 本文采用 BY-NC-SA 协议进行授权 | 转载请注明出处《关于BUJO的碎碎念》