子弹笔记生成器(Bullet Journal Generator)
核心职能
接收零散的自然语言输入,输出:
- 规范化子弹笔记:使用标准符号系统(● ○ – > < ☆)分类内容
- 语言润色:将口语化表达转换为简洁规范的表达
- Obsidian集成:工作学习内容自动生成符合Obsidian规范的日志(标签、双链)
- 可视化卡片:生成带日期、天气、温度的展示卡片(HTML格式)
- 打印版本:生成适合打印的PDF格式笔记
工作流程(SOP)
Phase 0:输入接收与预处理
# 接收用户输入(零散的自然语言)
示例输入:
"""
09:00 今天要把有机逆合成的逻辑和思路整理出来最好自动化。去买卫生纸,预约羽毛球场地
09:17 老板突然紧急需要交给政府的立项书,我先把摘要写出来
明天家家悦有打折的鸡蛋
最近的股票市场波动比较大,要尝试新的分析方法了
"""
# 预处理步骤:
1. 时间戳识别与标准化(09:00, 09:17, 明天)
2. 内容分段(按时间或语义分隔)
3. 获取当前日期、天气、温度信息
Phase 1:语言润色与分类
# 调用语言处理脚本
python3 scripts/process_notes.py --input "用户输入" --date "2025-03-16"
# 处理逻辑:
1. 语言润色:
- 去除口语化表达("要把" → "整理","突然" → 紧急标注)
- 提炼核心信息
- 补充必要主语
2. 内容分类(基于子弹笔记符号系统):
- ● 任务(Task):待办事项
- ○ 事件(Event):已发生或计划的活动
- – 笔记(Note):想法、灵感、观察
- > 迁移(Migration):推迟的任务
- < 计划(Scheduled):未来安排
- ☆ 优先(Priority):重要任务
3. 工作学习标记:
- 自动识别工作/学习相关内容
- 标记需要合并到Obsidian的内容
Phase 2:生成子弹笔记文本
# 生成标准化子弹笔记
python3 scripts/generate_bullet_journal.py \
--date "2025-03-16" \
--weather "晴" \
--temperature "15°C" \
--notes "[处理后内容列表]"
# 输出格式:
2025-03-16 (周一) | 晴 | 15°C
● 09:00 整理业务逻辑与思路,实现自动化
● 09:00 购买卫生纸
○ 09:17 紧急处理立项书摘要
< 明天 超市购买打折鸡蛋
– 最近股票市场波动较大,尝试新的分析方法
☆ 有机逆合成自动化整理(优先)
Phase 3:Obsidian日志集成
# 为工作学习相关内容生成Obsidian规范日志
python3 scripts/generate_obsidian_log.py \
--notes "[工作学习内容]" \
--date "2025-03-16"
# 输出规范:
---
date: 2025-03-16
tags: [工作/学习, 计划, 逆合成]
type: daily_log
---
# 2025-03-16 日志
## 任务
- [[业务/自动化整理]] 整理业务逻辑与思路,实现自动化 ⭐
- [[立项书/项目]] 紧急处理立项书摘要
## 思考与观察
[[股票分析/市场观察]] 最近股票市场波动较大,尝试新的分析方法
## 下一步行动
- [ ] 完成业务自动化
- [ ] 研究新股票分析方法
- [ ] 购买打折鸡蛋(超市)
---
# 双链说明
- [[业务/自动化整理]] → 链接到相关笔记
- [[立项书/项目]] → 项目相关文档
- [[股票分析/市场观察]] → 研究笔记
Phase 4:生成可视化卡片
# 生成HTML卡片(模拟手写风格)
python3 scripts/generate_card.py \
--date "2025-03-16" \
--weather "晴" \
--temperature "15°C" \
--notes "[子弹笔记内容]" \
--output "cards/2025-03-16.html"
# 卡片特性:
1. 手写风格设计(类似纸质笔记)
2. 显示日期、天气图标、温度
3. 按符号系统分类显示
4. 支持响应式布局
5. 可直接在浏览器中查看
Phase 5:生成打印版本
# 生成PDF打印版本
python3 scripts/generate_pdf.py \
--html "cards/2025-03-16.html" \
--output "printable/2025-03-16.pdf"
# 打印版本特性:
1. A4纸张格式优化
2. 高分辨率打印
3. 留有书写空间(手写补充)
4. 保持手写风格
5. 可批量打印多日笔记
Phase 6:文件保存与管理
# 自动保存到对应目录
python3 scripts/save_notes.py \
--date "2025-03-16" \
--bullet_journal "[子弹笔记文本]" \
--obsidian_log "[Obsidian日志]" \
--card_path "cards/2025-03-16.html" \
--pdf_path "printable/2025-03-16.pdf"
# 目录结构:
bullet-journal-gen/
├── data/
│ ├── 2025/
│ │ ├── 03/
│ │ │ ├── 16/
│ │ │ │ ├── bullet_journal.txt # 纯文本子弹笔记
│ │ │ │ ├── obsidian_log.md # Obsidian日志
│ │ │ │ ├── card.html # 可视化卡片
│ │ │ │ └── printable.pdf # 打印版本
│ │ │ └── ...
│ │ └── ...
│ └── ...
├── cards/ # HTML卡片(快捷访问)
│ ├── 2025-03-16.html
│ └── ...
├── printable/ # PDF打印版本
│ ├── 2025-03-16.pdf
│ └── ...
└── index.html # 索引页面(查看所有笔记)
符号系统说明
| 符号 | 类型 | 说明 | 示例 |
|---|---|---|---|
| ● | 任务 | 待办事项 | ● 整理有机逆合成逻辑 |
| ○ | 事件 | 已发生或计划的活动 | ○ 09:17 紧急处理立项书 |
| – | 笔记 | 想法、灵感、关键信息 | – 股票市场波动较大 |
| > | 迁移 | 未完成推迟的任务 | > 购买卫生纸(推迟至明日) |
| < | 计划 | 未来安排 | < 明天 家家悦购买鸡蛋 |
| ☆ | 优先 | 高优先级任务 | ☆ 有机逆合成自动化整理 |
语言润色规则
口语化转换
- "要把" → "整理/处理/完成"
- "突然" → 紧急标注(☆或前缀)
- "最好" → 目标补充
- "想一想" → "思考/研究"
- "看一下" → "查看/了解"
标准化格式
- 时间格式:HH:MM 或 "明天"
- 人名/地点:保持原名
- 项目名称:使用简洁表述
- 任务描述:动宾结构
Obsidian集成规范
文件命名
Daily Notes格式:YYYY-MM-DD.md
示例:2025-03-16.md
标签系统
tags: [工作/学习, 计划, 观察, 思考]
分类:
- 工作:项目相关、会议、文档
- 学习:研究、阅读、技能提升
- 计划:待办、日程、目标
- 观察:市场分析、数据观察
- 思考:想法、灵感、总结
双链规范
格式:[[笔记名称/子标题]] 或 [[笔记名称]]
示例:
- [[有机逆合成/自动化整理]]
- [[立项书/政府项目]]
- [[股票分析/市场观察]]
- [[技能提升/分析方法]]
内容组织
---
date: YYYY-MM-DD
tags: [...]
type: daily_log
---
# YYYY-MM-DD 日志
## 任务
- [[]] 任务1 ⭐(重要)
- [[]] 任务2
## 思考与观察
[[]] 思考内容
## 下一步行动
- [ ] 待办1
- [ ] 待办2
## 参考资料
天气集成
# 获取天气信息
python3 scripts/get_weather.py \
--date "2025-03-16" \
--location "烟台"
# 返回信息:
{
"weather": "晴",
"temperature": "15°C",
"icon": "sunny"
}
# 天气图标映射
sunny → ☀️
cloudy → ☁️
rainy → 🌧️
snowy → ❄️
windy → 💨
使用示例
示例1:日常记录
用户输入:
"""
今天要完成周报,下午3点开会。晚上去健身房。
明天记得给客户打电话。
"""
处理结果:
● 完成周报
○ 15:00 团队会议
○ 晚间 健身房训练
< 明天 给客户打电话
示例2:工作学习内容
用户输入:
"""
最近股票波动大,要试试新方法。老板要项目摘要,我先写一下。
"""
Obsidian日志:
---
date: 2025-03-16
tags: [工作, 研究]
type: daily_log
---
## 任务
- [[立项书/项目摘要]] 准备项目摘要 ⭐
## 思考与观察
[[股票分析/市场波动]] 市场波动较大,研究新分析方法
工具脚本目录
| 文件 | 功能 |
|---|---|
scripts/process_notes.py | 语言润色、内容分类、符号标记 |
scripts/generate_bullet_journal.py | 生成标准化子弹笔记文本 |
scripts/generate_obsidian_log.py | 生成Obsidian规范日志(标签+双链) |
scripts/generate_card.py | 生成可视化HTML卡片 |
scripts/generate_pdf.py | 生成PDF打印版本 |
scripts/get_weather.py | 获取天气信息 |
scripts/save_notes.py | 文件保存与管理 |
templates/card_template.html | HTML卡片模板 |
templates/print_template.html | 打印版本模板 |
输出格式总览
1. 子弹笔记文本(bullet_journal.txt)
2025-03-16 (周一) | ☀️ 晴 | 15°C
● 09:00 整理有机逆合成逻辑与思路
● 09:00 购买卫生纸
○ 09:17 紧急处理政府立项书摘要
< 明天 家家悦购买打折鸡蛋
– 最近股票市场波动较大,尝试新方法
☆ 有机逆合成自动化整理
2. Obsidian日志(obsidian_log.md)
---
date: 2025-03-16
tags: [工作, 学习]
type: daily_log
---
# 2025-03-16 日志
## 任务
- [[有机逆合成/自动化]] 整理有机逆合成逻辑 ⭐
- [[立项书/政府项目]] 处理立项书摘要
## 思考与观察
[[股票分析/市场波动]] 市场波动大,研究新方法
## 下一步
- [ ] 完成有机逆合成自动化
- [ ] 购买打折鸡蛋
3. 可视化卡片(card.html)
- 手写风格设计
- 显示日期、天气图标、温度
- 分类展示任务、事件、笔记
- 响应式布局
4. 打印版本(printable.pdf)
- A4格式优化
- 高分辨率
- 留有手写空间
- 保持手写风格
注意事项
- 语言润色平衡:保持原意的同时提高简洁性,不过度修改
- 符号准确性:根据内容性质正确选择符号
- 双链一致性:相同主题使用统一的双链格式
- 标签规范:使用预设标签系统,保持一致性
- 时间精度:保留用户提供的时间信息,必要时补充
- 隐私保护:敏感信息可标记为
:::hidden - 备份策略:所有笔记自动备份到
data/backup/ - 版本控制:每日笔记自动添加时间戳,便于追溯
扩展功能
1. 周度/月度汇总
# 生成周度/月度报告
python3 scripts/generate_summary.py \
--period "week" \
--start "2025-03-10" \
--end "2025-03-16"
2. 统计分析
# 任务完成率统计
python3 scripts/stats.py \
--month "2025-03"
3. 搜索与检索
# 按标签/双链搜索
python3 scripts/search.py \
--tag "工作" \
--date-range "2025-03-01:2025-03-16"
用户自定义
自定义符号
用户可在 config/symbols.yaml 中修改符号映射:
task: "●"
event: "○"
note: "–"
migration: ">"
scheduled: "<"
priority: "☆"
自定义标签
在 config/tags.yaml 中定义标签分类:
work: [项目, 会议, 文档, 汇报]
study: [研究, 阅读, 技能, 课程]
life: [健康, 购物, 娱乐, 社交]
自定义模板
在 templates/ 目录下修改 HTML/CSS 模板,实现个性化设计。