<%* const projectName = await tp.system.prompt(“请输入项目名称”); if (!projectName) { throw new Error(“未输入项目名称”); } const safeProjectName = projectName.replace(/[\\/:*?”<>|]/g, ”-“).trim(); await tp.file.move(“4.Projects/I.projects/” + safeProjectName); -%>
project: <% projectName %> type: main-project priority: high status:
- 进行中 tags:
- project description: 简介描述 start-date: <% tp.date.now(“YYYY-MM-DD”) %> end-date:
<% projectName %>
task执行表
TABLE
completion as "完成度",
mood as "心情",
date as "日期",
详情 as "详情"
FROM "4.Projects/II.tasks"
WHERE project = "<% projectName %>"
SORT date DESC任务
未完成任务
TASK
FROM "<% projectName %>"
WHERE !completed主要任务
暂缓任务
统计
进度统计
const tasks = dv.pages('"4.Projects/II.tasks"')
.where(p => p.project === "<% projectName %>");
const total = tasks.length;
const avgCompletion = tasks.array()
.reduce((sum, t) => sum + (t.completion || 0), 0) / total;
dv.paragraph(`
**总任务数**: ${total}
**平均完成度**: ${avgCompletion.toFixed(1)}/10
**本周任务**: ${tasks.where(t => {
const weekAgo = dv.date('now').minus({days: 7});
return t.date >= weekAgo;
}).length}
`);日历图
CALENDAR date
FROM "4.Projects/II.tasks"
WHERE project = "<% projectName %>"