---
目标完成度:
锻炼:
阅读:
语言:
睡觉习惯:
date: <% tp.date.now("YYYY-MM-DD") %>
---
<%*
const MAX_DAYS = 30;
let tomorrowGoals = "";
let dedupedUnfinished = "";
let daysAgo = 0;
let foundDate = null;

for (let i = 1; i <= MAX_DAYS; i++) {
    const targetDate = moment().subtract(i, 'days').format('YYYY-MM-DD');
    const targetFile = tp.file.find_tfile(targetDate);

    if (targetFile) {
        const content = await tp.file.include("[[" + targetDate + "]]");

        const goalMatch = content.match(/## 明日目标\n([\s\S]*?)(?=\n## |\n---|\n#[^#]|$)/);
        tomorrowGoals = goalMatch ? goalMatch[1].trim() : "";

        const unfinished = content
            .split('\n')
            .filter(line => line.match(/^- \[ \]/))
            .join('\n');

        if (tomorrowGoals || unfinished) {
            const tomorrowLines = new Set(tomorrowGoals.split('\n').map(l => l.trim()));
            dedupedUnfinished = unfinished
                .split('\n')
                .filter(line => !tomorrowLines.has(line.trim()))
                .join('\n');

            daysAgo = i;
            foundDate = targetDate;
            break;
        }
    }
}

const dateHint = daysAgo > 1 ? `<!-- 来自 ${foundDate},${daysAgo} 天前 -->` : "";
const todayGoals = tomorrowGoals || "- [ ] ";
const carriedBlock = dedupedUnfinished
    ? dedupedUnfinished
    : "_(无延续任务)_";
-%>
# <% tp.date.now("YYYY-MM-DD") %>
## 今日目标
<% todayGoals %>



## 延续目标
<% daysAgo > 1 ? `> [!note] 来自 ${foundDate}(${daysAgo} 天前)\n\n` + carriedBlock : carriedBlock %>

## 今日复盘
- 推进了什么:  
- 浪费在哪:  
- 明天关键:
- 做了什么去推进主线任务:  

## 明日目标
- [ ] 



## 今日记录