踐:用Markdown和Dataview搭建個(gè)人健康數(shù)據(jù)中心)
Obsidian做健康管理這個(gè)選題我其實(shí)挺有發(fā)言權(quán)的。用了兩年多從最開始只是拿它記訓(xùn)練日志到后來把睡眠、飲食、體重體脂、跑量、情緒狀態(tài)全部納入到一個(gè)庫里它已經(jīng)不只是筆記軟件而是我個(gè)人的健康數(shù)據(jù)中心。市面上健康類App很多但數(shù)據(jù)都躺在別人的服務(wù)器上格式封閉、導(dǎo)出困難、功能固定而Obsidian的好處是所有數(shù)據(jù)都是本地Markdown文件結(jié)構(gòu)完全由自己定義想怎么分析就怎么分析不存在“這功能要會(huì)員”或者“這數(shù)據(jù)導(dǎo)不出來”的問題。這篇文章會(huì)把整套方案的思路、數(shù)據(jù)結(jié)構(gòu)、模板寫法、查詢統(tǒng)計(jì)都拆開講適合已經(jīng)有一定Obsidian基礎(chǔ)、想把它用于健康管理的人也適合剛開始接觸、想知道筆記軟件能干什么的讀者。我會(huì)盡量把細(xì)節(jié)講透——包括那些文檔里不會(huì)明說的踩坑經(jīng)驗(yàn)。1. 整體設(shè)計(jì)思路為什么拿筆記軟件做健康管理1.1 選型背后的邏輯從需求倒推工具先說說我為什么不用現(xiàn)成的健康A(chǔ)pp而要自己搭一套。核心原因有三個(gè)。第一是數(shù)據(jù)歸屬。絕大多數(shù)健康類App都是封閉的記錄進(jìn)去的數(shù)據(jù)雖然能在App里看但想導(dǎo)出或者遷移到別的工具里非常困難。健康管理是論“年”為單位的長周期事情數(shù)據(jù)積累越久價(jià)值越高如果哪一天App停止運(yùn)營或者你換了平臺(tái)這些數(shù)據(jù)可能就永遠(yuǎn)拿不回來了。而Obsidian的數(shù)據(jù)是純文本Markdown文件存在你自己的電腦、手機(jī)或者同步盤里任何時(shí)刻都可以完整導(dǎo)出、備份、遷移完全不存在被平臺(tái)綁架的問題。第二是靈活性。現(xiàn)成App的功能是定死的它讓你填什么你就得填什么它有什么圖表你就能看什么圖表。但每個(gè)人的健康管理需求差異很大——跑步的人關(guān)注跑量和配速健身的人關(guān)注訓(xùn)練動(dòng)作和重量減脂的人關(guān)注熱量和體重有睡眠問題的人關(guān)注入睡時(shí)間和深睡時(shí)長——你很難找到一個(gè)App同時(shí)滿足所有這些維度。而Obsidian的字段、模板、查詢、視圖全部可以自定義想要什么就自己加主動(dòng)權(quán)完全在自己手里。第三是關(guān)聯(lián)性。健康管理不是一個(gè)孤立的數(shù)據(jù)點(diǎn)它是一條鏈條昨晚的睡眠影響今天的訓(xùn)練狀態(tài)今天的飲食影響明天的體重這周的壓力水平可能反映在心率數(shù)據(jù)上。傳統(tǒng)App里這些數(shù)據(jù)是割裂的而Obsidian支持任意筆記之間的雙向鏈接完全可以把“體重?cái)?shù)據(jù)”和“某天吃了什么”“某天的睡眠質(zhì)量”鏈接到一起從單一數(shù)據(jù)點(diǎn)看到完整的生活狀態(tài)。關(guān)于適合誰我說句實(shí)話如果你只是想知道“今天走了多少步”沒必要折騰Obsidian微信運(yùn)動(dòng)和手機(jī)自帶健康都?jí)蛴昧恕5绻阋呀?jīng)開始系統(tǒng)性地關(guān)注某個(gè)健康目標(biāo)——比如減脂、增肌、備賽、改善睡眠——并且意識(shí)到“光記沒用得找到規(guī)律才有用”那這套方案會(huì)非常值得嘗試。1.2 整體架構(gòu)一個(gè)中心、兩條鏈路、三個(gè)模塊搭建之前先在腦子里畫個(gè)圖。我的健康庫整體架構(gòu)可以概括為“一個(gè)中心、兩條鏈路、三個(gè)模塊”。一個(gè)中心以“日期維度”為單位的記錄筆記是核心。每個(gè)記錄文件除了記錄當(dāng)天的數(shù)據(jù)還能鏈接到對(duì)應(yīng)的周計(jì)劃、月目標(biāo)形成一個(gè)從“目標(biāo)”到“執(zhí)行”到“結(jié)果”的完整鏈條。兩條鏈路第一條是“記錄鏈路”也就是每天怎么快速錄入數(shù)據(jù)包括日記模板、快捷命令、移動(dòng)端配合第二條是“分析鏈路”也就是從零散的數(shù)據(jù)里匯總出周報(bào)、月報(bào)、趨勢(shì)圖表借助Dataview插件自動(dòng)化完成。三個(gè)模塊記錄系統(tǒng)吃、練、睡、情緒、身體數(shù)據(jù)、目標(biāo)系統(tǒng)周目標(biāo)、月目標(biāo)、專項(xiàng)計(jì)劃、分析系統(tǒng)日?qǐng)?bào)、周報(bào)、月報(bào)、趨勢(shì)圖表。這個(gè)架構(gòu)最核心的思路是錄入要快到?jīng)]有負(fù)擔(dān)分析要自動(dòng)到不用手動(dòng)。只有錄入足夠輕量你才能堅(jiān)持只有分析完全自動(dòng)化你才愿意回頭看數(shù)據(jù)。兩者缺一不可。1.3 目錄規(guī)劃給數(shù)據(jù)一個(gè)安放的地方很多人的Obsidian庫最后變成“亂葬崗”根源是前期沒有目錄規(guī)劃。健康管理涉及的數(shù)據(jù)種類多、頻率高如果目錄亂后面寫查詢公式時(shí)路徑全亂套。我建議的目錄結(jié)構(gòu)是這樣Health/ ├── 00_收件箱/ # 臨時(shí)記錄和閃念筆記比如跑步時(shí)隨手記的感受 ├── 01_日記/ # 每天的日記按天一條是整個(gè)系統(tǒng)的錨點(diǎn) ├── 02_訓(xùn)練/ # 每次訓(xùn)練的詳細(xì)記錄跑步、力量、瑜伽等 ├── 03_飲食/ # 飲食日記 ├── 04_健康數(shù)據(jù)/ # 體重、體脂、睡眠、心率等身體數(shù)據(jù) ├── 05_目標(biāo)/ # 周目標(biāo)、月目標(biāo)、專項(xiàng)計(jì)劃 ├── 06_周報(bào)/ # 自動(dòng)生成的每周匯總 ├── 07_月報(bào)/ # 自動(dòng)生成的每月匯總 ├── 08_模板/ # 所有記錄模板 └── 09_復(fù)盤/ # 腿傷恢復(fù)記錄、訓(xùn)練計(jì)劃迭代、經(jīng)驗(yàn)總結(jié)前綴數(shù)字的作用有兩個(gè)一是固定排序讓文件夾在側(cè)邊欄里按邏輯順序排列不會(huì)因?yàn)樾陆ㄎ募A就亂掉二是快速定位用快捷鍵打開文件時(shí)輸入04就能聯(lián)想到健康數(shù)據(jù)區(qū)配合中文輸入法可以直接跳轉(zhuǎn)。命名規(guī)范上我的原則是“類型前綴日期描述”訓(xùn)練-2025-03-18-晨跑12k.md 健康數(shù)據(jù)-2025-03-18.md 日記-2025-03-18.md統(tǒng)一命名格式的最大好處是后面寫Dataview查詢時(shí)可以直接按前綴過濾配合文件名里的日期排序和篩選都變得非常干凈。我吃過一次虧早期命名五花八門有的是“0318訓(xùn)練”、有的是“3月18日跑步”結(jié)果寫查詢時(shí)條件怎么寫都不對(duì)只好花了半天統(tǒng)一改名。這個(gè)坑先幫你們踩了。2. 核心數(shù)據(jù)模塊每條記錄長什么樣2.1 日記整個(gè)系統(tǒng)的錨點(diǎn)日記是整個(gè)健康管理系統(tǒng)的錨點(diǎn)。訓(xùn)練記錄、飲食記錄、健康數(shù)據(jù)都可以獨(dú)立存在但真正把一天串起來的是日記。我的日記模板不算復(fù)雜但每個(gè)字段都有用途??聪逻@個(gè)模板--- 日期: 2025-03-18 星期: 周二 晨重: 晨體脂: 睡眠時(shí)長: 睡眠質(zhì)量: 6 精力值: 7 壓力值: 3 心情: 平靜 訓(xùn)練鏈接: [[訓(xùn)練-2025-03-18-晨跑12k]] 飲食鏈接: [[飲食-2025-03-18]] --- ## 睡眠 昨晚入睡時(shí)間23:20 今早醒來時(shí)間06:30 睡眠中斷次數(shù)1次 ## 身體感受 這里寫今天身體的狀態(tài)比如哪里酸痛、有沒有不適、心肺感覺如何 ## 飲食記錄 早餐燕麥牛奶、水煮蛋x2、藍(lán)莓 午餐公司食堂 晚餐雞胸肉沙拉 ## 情緒與精力 記錄今天的工作壓力、情緒波動(dòng)、精力起伏 ## 今日小結(jié) 今天訓(xùn)練狀態(tài)不錯(cuò)晨跑配速比上周快了15秒但下午有點(diǎn)犯困可能是昨晚睡晚了。屬性區(qū)兩個(gè)---之間的YAML區(qū)域存放的是結(jié)構(gòu)化、可計(jì)算的數(shù)據(jù)比如體重、體脂、睡眠時(shí)長、精力值這些數(shù)值正文區(qū)存放的是非結(jié)構(gòu)化的描述。這樣做的好處是Dataview可以根據(jù)屬性區(qū)做數(shù)值計(jì)算、趨勢(shì)排序而你寫的好多文字則保留上下文和細(xì)節(jié)兩者互補(bǔ)。比如你可以看到“周二體重平均比周一高0.3kg”同時(shí)也能翻到那條記錄里寫著的“昨晚應(yīng)酬吃火鍋了”數(shù)據(jù)背后的原因一目了然。日記的用途不只是“記錄”它還是一個(gè)鏈接樞紐。訓(xùn)練記錄和飲食記錄都是獨(dú)立筆記但在日記里通過鏈接指過去。這樣查看某一天時(shí)所有維度的信息都在一個(gè)視野里反過來從訓(xùn)練筆記點(diǎn)回當(dāng)天日記也能看到那天的身體狀態(tài)。這個(gè)雙向跳轉(zhuǎn)的邏輯是傳統(tǒng)App做不到的。2.2 訓(xùn)練記錄精細(xì)化到“每次”訓(xùn)練記錄的詳細(xì)程度決定了分析的價(jià)值。我的訓(xùn)練筆記模板長這樣--- 日期: 2025-03-18 類型: 有氧 項(xiàng)目: 晨跑 距離: 12.0 用時(shí): 72.5 配速: 6.04 平均心率: 148 最大心率: 171 體感難度: 7 跑步鞋: 飛馬 鏈接: [[日記-2025-03-18]] --- ## 訓(xùn)練詳情 記錄路線、分段配速、爬升等細(xì)節(jié) ## 感受 今天起跑前兩公里腿很沉一度想放棄三公里之后反而輕松了。最后兩公里頂了頂速度體感比上周好。 ## 狀態(tài)評(píng)估 對(duì)照目標(biāo)檢查自己有沒有按計(jì)劃執(zhí)行字段設(shè)計(jì)背后有個(gè)原則能結(jié)構(gòu)化的字段絕不寫進(jìn)正文。距離、用時(shí)、心率這些數(shù)據(jù)要用來算統(tǒng)計(jì)必須變成屬性而“腿很沉”“空氣濕度大”這些主觀感受沒有統(tǒng)計(jì)價(jià)值寫正文更合適。兩者各司其職不要混在一起。有一個(gè)細(xì)節(jié)值得注意配速不是直接填的而是由距離和用時(shí)自動(dòng)算出來的。這樣寫查詢時(shí)可以直接顯示配速避免手算或者填錯(cuò)單位。計(jì)算方法是配速分鐘/公里 用時(shí)分鐘÷ 距離公里也就是 72.5 ÷ 12.0 6.04。不要小看這個(gè)細(xì)節(jié)。如果屬性區(qū)域里既存了用時(shí)又存了配速就會(huì)出現(xiàn)數(shù)據(jù)不一致的情況——你改了用時(shí)但忘了改配速。只存原始數(shù)據(jù)、派生數(shù)據(jù)全部由計(jì)算生成是數(shù)據(jù)建模的基本原則。2.3 健康數(shù)據(jù)每天五分鐘的例行錄入體重、體脂、睡眠這些數(shù)據(jù)我單獨(dú)放在健康數(shù)據(jù)筆記里不會(huì)混進(jìn)日記。原因還是那條它們的記錄頻率固定、分析方式固定單獨(dú)放在一個(gè)文件里查詢和圖表生成的邏輯可以做到非常干凈。--- 日期: 2025-03-18 晨重: 70.2 晨體脂: 19.5 睡眠時(shí)長: 6.7 入睡時(shí)間: 23:20 醒來時(shí)間: 06:30 靜息心率: 58 ---每天早晨固定時(shí)間測(cè)量稱重然后把數(shù)據(jù)填進(jìn)去。這里有個(gè)我摸索出來的經(jīng)驗(yàn)稱重?cái)?shù)據(jù)比訓(xùn)練數(shù)據(jù)更容易產(chǎn)生挫敗感所以別把它寫進(jìn)日記而是放進(jìn)“數(shù)據(jù)”文件里。這樣寫日記時(shí)不會(huì)被每天波動(dòng)的體重干擾心情而做周報(bào)時(shí)又能看到完整的趨勢(shì)線。從心理學(xué)角度說就是把“情緒記錄”和“數(shù)據(jù)記錄”分開避免數(shù)據(jù)波動(dòng)帶來情緒污染。睡眠時(shí)長也不是手填的而是醒來時(shí)間減去入睡時(shí)間自動(dòng)算出來的。如果你有智能手表這些數(shù)據(jù)通常能自動(dòng)同步那就更省事只需要在導(dǎo)入時(shí)保持格式一致就行。2.4 模板自動(dòng)化的關(guān)鍵Templater手動(dòng)敲模板太反人性了所以必須自動(dòng)化。Obsidian的Templater插件能實(shí)現(xiàn)兩件事第一是插入模板時(shí)自動(dòng)填上當(dāng)前日期、星期第二是根據(jù)模板中的變量自動(dòng)計(jì)算字段。我用Templater的方式是給日記模板的第一行加一行代碼--- 日期: % tp.date.now(YYYY-MM-DD) % 星期: % tp.date.now(dddd) % ---然后設(shè)置一個(gè)快捷鍵每天早上按一下當(dāng)天的日記就自動(dòng)建好了日期和星期不需要手動(dòng)輸入。訓(xùn)練記錄、飲食記錄、健康數(shù)據(jù)筆記同理。這里有個(gè)容易踩的坑Templater自動(dòng)生成的日期用的是系統(tǒng)時(shí)間如果你的系統(tǒng)時(shí)區(qū)不對(duì)日期就會(huì)差一天。某次我出差時(shí)忘記調(diào)筆記本時(shí)區(qū)連續(xù)幾天生成的日記日期都是前一天的后來統(tǒng)一核對(duì)時(shí)才發(fā)現(xiàn)的。所以模板自動(dòng)化之后第一周一定要抽空檢查一遍生成的日期是否正確。3. 數(shù)據(jù)分析與可視化讓數(shù)據(jù)自己會(huì)說話3.1 Dataview查詢一切記錄數(shù)據(jù)不是目的找出規(guī)律才是。Obsidian里做數(shù)據(jù)分析的大殺器是Dataview它能用類似SQL的語法在筆記列表里自動(dòng)生成動(dòng)態(tài)查詢結(jié)果而且結(jié)果會(huì)隨著數(shù)據(jù)更新自動(dòng)刷新。常用的查詢場(chǎng)景有這些場(chǎng)景一本周訓(xùn)練匯總TABLE 日期, 類型, 距離, 用時(shí), 配速 FROM 05_健康庫/02_訓(xùn)練 WHERE 日期 date(2025-03-17) AND 日期 date(2025-03-23) SORT 日期 ASC這個(gè)查詢會(huì)把你這一周的所有訓(xùn)練記錄列成一張表直接看到周一跑了什么、周三練了什么、周日有沒有偷懶。場(chǎng)景二近30天體重趨勢(shì)TABLE 日期, 晨重, 晨體脂 FROM 05_健康庫/04_健康數(shù)據(jù) WHERE 日期 date(today) - dur(30 days) SORT 日期 ASC這個(gè)查詢就用來觀察體重和體脂的變化趨勢(shì)比App里的“7天/30天切換”更靈活因?yàn)槿掌诜秶梢詮氐鬃远x。場(chǎng)景三平均配速統(tǒng)計(jì)TABLE round(avg(配速), 2) AS 平均配速, round(sum(距離) / 10, 2) AS 總里程(km) FROM 05_健康庫/02_訓(xùn)練 WHERE type 晨跑寫法上,avg()是求平均round()是保留兩位小數(shù)sum()是求和。想統(tǒng)計(jì)什么就改字段名非常靈活。關(guān)于日期格式有個(gè)必須注意的點(diǎn)Dataview對(duì)日期的字段名很敏感屬性區(qū)里的日期這個(gè)鍵名必須是date類型才能比較。如果你存的是“2025-03-18”這種字符串格式查詢時(shí)就要寫成date(日期)做類型轉(zhuǎn)換。否則該出現(xiàn)數(shù)據(jù)的查詢里會(huì)莫名一片空白這類問題排查起來特別費(fèi)勁。3.2 Obsidian Charts把數(shù)據(jù)變成圖Dataview能列表格但表格對(duì)人類大腦來說不算最直觀的呈現(xiàn)。我的方案是把Dataview查詢結(jié)果喂給Charts插件讓它生成趨勢(shì)圖和柱狀圖。Charts支持的圖表類型很豐富線形圖看體重趨勢(shì)、柱狀圖看每周跑量、餅圖看訓(xùn)練類型分布。我常用的Charts代碼塊是這樣view: line title: 近30天晨重趨勢(shì) x: 日期 y: 晨重 data: | ...具體數(shù)據(jù)部分不建議手動(dòng)填更順暢的做法是把Dataview查詢的結(jié)果復(fù)制粘貼到圖表中或者寫一段更高級(jí)的JavaScript代碼直接從Dataview取數(shù)據(jù)。后者實(shí)現(xiàn)起來要寫一小段DQL查詢配合dv.pages()函數(shù)適合有一定編程基礎(chǔ)的讀者沒基礎(chǔ)的先用復(fù)制粘貼大法也能滿足大部分需求。我自己的做法是把Dataview表格放在文檔上半部分Charts圖表放在下半部分。表格看具體數(shù)值圖表看整體趨勢(shì)兩者配合信息密度非常高。3.3 周報(bào)與月報(bào)自動(dòng)生成的“體檢報(bào)告”光有數(shù)據(jù)和圖表還不夠人類需要敘事。每個(gè)周末我會(huì)打開周報(bào)筆記看到Dataview自動(dòng)生成的內(nèi)容有點(diǎn)像是拿到一份自己給自己出的體檢報(bào)告。周報(bào)模板里放了這么幾個(gè)區(qū)塊本周訓(xùn)練總覽跑了多少公里、練了幾次、平均配速、本周身體數(shù)據(jù)平均體重、平均體脂、平均睡眠時(shí)長、本周與上周的對(duì)比、本周目標(biāo)完成情況。TABLE 一周總里程 AS , 訓(xùn)練次數(shù) AS , 平均配速 AS ?, 平均晨重 AS ??, 平均睡眠時(shí)長 AS FLATTEN sum(rows.距離) AS 一周總里程 FROM 05_健康庫/02_訓(xùn)練 WHERE 日期 date(2025-03-17) AND 日期 date(2025-03-23)注意周報(bào)的每一條查詢都要寫死日期范圍所以我建模板的時(shí)候會(huì)把日期范圍留成變量每次新建周報(bào)前用Templater填一下當(dāng)周的起止時(shí)間就行。雖然多了一步但比手動(dòng)去改每個(gè)查詢條件省太多事。你會(huì)看到這樣的句子“本周總跑量32.5公里比上周減少18%”“本周平均睡眠6.5小時(shí)低于目標(biāo)時(shí)長7小時(shí)”“體脂率連續(xù)三周下降趨勢(shì)良好”。這些數(shù)據(jù)不是某個(gè)教練給你的是你用Obsidian自己算出來的客觀且真實(shí)。4. 常見問題與排查技巧實(shí)錄Dataview沒結(jié)果、模板不刷新、圖表不顯示……這些問題我之前全都遇到過寫個(gè)備忘免得后來者再踩一次。4.1 Dataview查詢結(jié)果的常見“空手而歸”這是最讓人頭疼的情況。明明筆記里存了數(shù)據(jù)Dataview卻顯示空列表或者空表格。排查順序我總結(jié)成了“三板斧”先檢查路徑。Dataview的FROM條件寫的路徑和實(shí)際筆記所在路徑是否完全一致大小寫和中文空格都不能差。05_健康庫/02_訓(xùn)練和05_健康庫/02_訓(xùn)練/是兩種結(jié)果結(jié)尾多一個(gè)熱斜杠就可能查不到。如果文件夾是英文直接寫成FolderName如果是中文必須用引號(hào)包起來不然解析會(huì)出錯(cuò)。再檢查字段類型。屬性區(qū)里寫date: 2025-03-18之后用表格視圖顯示時(shí)可能會(huì)被當(dāng)成字符串。此時(shí)比較表達(dá)式里要寫date(日期) ...確保轉(zhuǎn)換成日期類型。我踩過一次坑某個(gè)月的體重趨勢(shì)圖一片空白最后發(fā)現(xiàn)所有體重筆記的日期字段全是字符串格式DataVview不敢自動(dòng)轉(zhuǎn)換。最后檢查查詢語法。WHERE 日期 date(2025-03-17)這個(gè)寫法在Dataview里要求日期是一個(gè)合法的字段名如果在筆記里敲日期時(shí)不小心帶了一個(gè)空格2025-03-18就查不出來。最容易出問題的反而是看起來最沒問題的日期后面不能有空格鍵名不能有大寫字母除非你全大寫查詢里要引用屬性名就必須和筆記里完全一致。4.2 模板日期一直不更新用Templater自動(dòng)生成的日期如果“卡住”基本都是因?yàn)橥惶靸?nèi)多次插入模板導(dǎo)致時(shí)間重復(fù)。解決辦法是在模板命令后面加一個(gè)按鈕或者設(shè)置個(gè)命令讓它每次插入時(shí)都重新取系統(tǒng)時(shí)間。你在模板文件里寫tp.date.now()時(shí)它不會(huì)自動(dòng)每天重算因?yàn)槟0灞旧硎庆o態(tài)文件每次插入只是“復(fù)制”復(fù)制時(shí)Templater才會(huì)執(zhí)行動(dòng)態(tài)部分。如果你創(chuàng)建的日記模板文件里有一行固定寫的“2025-03-18”那不管是明天還是后天新建日記日期都長這樣。正確做法是每次新建筆記時(shí)用Templater的快捷鍵而不是手動(dòng)復(fù)制已有筆記再改日期。還有一個(gè)相關(guān)性問題是移動(dòng)端和桌面端的時(shí)區(qū)不同。如果你的手機(jī)和電腦不在同一時(shí)區(qū)生成日期會(huì)偏一天。我出差的時(shí)候踩過這個(gè)坑最后統(tǒng)一只在電腦上跑Templater手機(jī)上只做記錄不生成新文件。4.3 圖表顯示異常Charts不顯示或顯示空白90%的原因是數(shù)據(jù)格式?jīng)]對(duì)齊。Charts要求的CSV數(shù)據(jù)格式是每行一條數(shù)據(jù)首行是列名數(shù)字必須是純數(shù)字不能帶“kg”“分鐘”這些單位。如果你給體重?cái)?shù)據(jù)加了個(gè)“kg”Charts就直接拒絕渲染。去掉單位放到筆記里或者在查詢表達(dá)里截掉問題就解決了。另外Charts對(duì)中文列名的支持有過版本問題老版本直接不顯示中文列名。遇到這種情況升級(jí)插件版本基本能解決實(shí)在不行把列名改成英文。4.4 庫的初始化什么時(shí)候開始都不晚很多人在搭建健康庫時(shí)會(huì)想“我以前的記錄怎么辦”“數(shù)據(jù)不夠多是不是沒有價(jià)值”。我的回答是不用糾結(jié)補(bǔ)歷史數(shù)據(jù)從今天開始記就行。健康管理的意義不在“過去的完整性”而在“從今天開始建立連續(xù)性”。哪怕你打算下個(gè)月才正式開始系統(tǒng)訓(xùn)練也完全可以現(xiàn)在先建好日記模板和健康數(shù)據(jù)文件因?yàn)椤敖裉臁本褪悄阕钤绲哪且惶鞌?shù)據(jù)。如果覺得數(shù)據(jù)太少看不出來規(guī)律那就加大記錄密度。比如體重管理初期每天記錄比每周記一次更容易看出波動(dòng)趨勢(shì)跑步訓(xùn)練初期每次記錄心率區(qū)間比只記錄配速更有價(jià)值。4.5 多設(shè)備同步和數(shù)據(jù)安全Obsidian是本地優(yōu)先我的全部健康數(shù)據(jù)都存在個(gè)人設(shè)備里。為了多設(shè)備同步我使用市面主流的同步盤服務(wù)手機(jī)和電腦共用同一個(gè)庫。這里要重點(diǎn)強(qiáng)調(diào)的是安全備份邏輯健康數(shù)據(jù)太重要了絕不能只依賴普通同步。我設(shè)置了本地定時(shí)備份加云端備份的“雙保險(xiǎn)”每月手動(dòng)打包一份全部健康數(shù)據(jù)上傳到網(wǎng)盤另外存一份。有些同步服務(wù)支持版本歷史這個(gè)一定要開啟。某次我不小心清空了一個(gè)健康數(shù)據(jù)文件的屬性區(qū)導(dǎo)致連續(xù)三個(gè)月的數(shù)據(jù)全沒了——當(dāng)時(shí)真是抓狂后來靠版本歷史找回了一大半。從那以后我對(duì)于重要的健康庫堅(jiān)決開啟版本歷史功能這是血淚教訓(xùn)。5. 總結(jié)與建議這套Obsidian健康管理系統(tǒng)我用了兩年多從最開始只有訓(xùn)練記錄到后來擴(kuò)展到飲食、睡眠、情緒、身體數(shù)據(jù)、目標(biāo)管理它已經(jīng)完全替代了所有健康類App?;仡^看真正讓我堅(jiān)持下來的不是插件多強(qiáng)大而是“記錄成本低分析反饋快”。如果每天錄入要花十分鐘我第三周就會(huì)放棄如果每周能看到自動(dòng)生成的趨勢(shì)反饋我就會(huì)想繼續(xù)記下去。如果你也想搭建我的建議是分三步走第一步只建一個(gè)日記模板每天記錄睡眠時(shí)間和體重第二步堅(jiān)持一周后添加訓(xùn)練記錄和Dataview周報(bào)查詢第三步當(dāng)你發(fā)現(xiàn)“跑步后睡得更好了”這個(gè)規(guī)律用自己的數(shù)據(jù)驗(yàn)證出來時(shí)你已經(jīng)離不開這套系統(tǒng)了。最后說一個(gè)小技巧不要一開始就追求完美模板。我第一版日記模板只有三個(gè)字段后來迭代了七八次才變成現(xiàn)在這個(gè)比較完整的版本。健康管理的關(guān)鍵不是工具多完美而是你愿意持續(xù)記錄。Obsidian只是那個(gè)確?!坝涗浀孟氯ァ钡墓ぞ咚颜砗头治龅呢?fù)擔(dān)扛走把記錄的樂趣留給你。