kaka72 downloadsDaily notes with dynamic directory paths, template rendering, task carry-over, and section-level confirmation.
An Obsidian plugin that extends the native Daily Notes plugin with:
obsidian-daily-report folder to your vault's .obsidian/plugins/ directoryUses Luxon date format strings with / to separate directory levels:
YYYY/MM/[W]WW/MMDD
Example: 2026/09/[W]39/0922 → creates 2026/09/第39周/0922.md
Common formats:
YYYY - 4-digit yearMM - Month (01-12)DD - Day (01-31)WW - Week number (01-53)GGGG - ISO yearcccc - Weekday name (Monday, Tuesday...)[text] - Literal text in square bracketsPath to the template file in your vault, e.g.:
Templates/Daily Report.md
Templates support three date placeholder formats:
| Format | Example | Output |
|---|---|---|
**date:FORMAT** |
**date:YYYY-MM-DD** |
2024-01-15 |
${date:FORMAT} |
${date:cccc} |
Monday |
{{date:FORMAT}} |
{{date:GGGG-[W]WW}} |
2024-[W]03 |
- [x]) from yesterday's note when carrying overThe plugin uses a hierarchical template structure:
## Fixed Section (template, daily)
### Specific Requirement (may carry over)
#### Sub-task/Item (clear boundary)
- Content...
- [ ] Optional task marker
| Level | Purpose | Carry-over |
|---|---|---|
## |
Fixed template sections | Never carried over |
### |
Specific requirements | May carry over |
#### |
Sub-tasks/Items | Part of parent section |
Mark section status with HTML comments or strikethrough:
| Status | Marker | Carry-over |
|---|---|---|
| Pending (in progress) | <!-- req-status: pending --> or no marker |
Yes |
| Verifying (verifying) | <!-- req-status: verifying --> |
Yes |
| Done (completed) | ~~Title~~ or <!-- req-status: done --> |
No |
| Cancelled (dropped) | <!-- req-status: cancelled --> |
No |
Note: Strikethrough (~~title~~) can only represent "done", not "cancelled". Use HTML comment for cancelled.
If all #### sub-tasks under a ### requirement are completed, the requirement is automatically marked as done and not carried over.
Create Today's Daily Report
│
├─ Read template → Render date placeholders → Generate today's note
│
├─ Read yesterday's note
│ │
│ ├─ Parse sections and sub-tasks
│ │
│ └─ Check section status
│ │
│ ├─ All #### done → Auto-mark as done, skip
│ ├─ Has pending #### → Ask user for confirmation
│ ├─ Already done/cancelled → Skip
│ └─ Show confirmation modal
│
├─ Apply status decisions to yesterday's note
│
├─ Carry over pending sections to today's note
│
└─ Save and open today's note
done or cancelled status: Not carried overpending or verifying status:#### sub-tasks completed → Auto-mark as done, not carried over#### sub-tasks → Carried over ┌─────────────────────────────────────┐
│ │
▼ │
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Pending │───▶│ Verifying│───▶│ Done │
│(进行中) │◀───│ (验证中) │◀───│ (已完成) │
└──────────┘ └──────────┘ └──────────┘
│ │ │
│ │ │
▼ ▼ │
┌──────────┐ ┌──────────┐ │
│Cancelled │ │Cancelled │ │
│(已取消) │ │ (已取消) │ │
└──────────┘ └──────────┘ │
│ │
└─────────────────────────────────────┘
All statuses can be switched back and forth.
# Daily Report - **date:YYYY-MM-DD**
## feature
### item-1
- [ ] task-1
- [ ] task-2
### item-2
- [ ] task-1
- [ ] task-2
## bugfix
### item-1
- [ ] task-1
- [ ] task-2
## summary
### item-1
- content
# 日报 - **date:YYYY-MM-DD**
## 今日AI
### item-1
- [ ] 任务1
- [ ] 任务2
### item-2
- [ ] 任务1
- [ ] 任务2
## 外部支持
### item-1
- [ ] 任务1
- [ ] 任务2
### item-2
- [ ] 任务1
- [ ] 任务2
## 重要迭代
### item-1
- [ ] 任务1
- [ ] 任务2
### item-2
- [ ] 任务1
- [ ] 任务2
## 待修复的问题
### item-1
- [ ] 任务1
- [ ] 任务2
### item-2
- [ ] 任务1
- [ ] 任务2
## 每日总结
### item-1
- 内容

Settings page showing daily path format, template path, and options
# Install dependencies
pnpm install
# Development mode (watch)
pnpm dev
# Production build
pnpm build
# Type check
pnpm typecheck
# Run tests
pnpm test
# Lint
pnpm lint
obsidian - Obsidian plugin API (dev reference only)luxon - Date handling (bundled with Obsidian, no extra install needed)esbuild - Build tooltypescript - Type safetyMIT