meeting-notes-formatter
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMeeting Notes Formatter
会议记录格式化工具
Transform raw, unstructured meeting notes into clean, professional documents. Automatically detects sections, extracts action items, parses attendees, and exports to Markdown or PDF.
将原始、无结构的会议记录转换为整洁、专业的文档。可自动检测章节、提取行动项、解析参会人员,并导出为Markdown或PDF格式。
Quick Start
快速开始
python
from scripts.notes_formatter import MeetingNotesFormatterpython
from scripts.notes_formatter import MeetingNotesFormatterFormat raw notes
格式化原始记录
raw_notes = """
Project sync Jan 15
Attendees: John, Sarah, Mike
Discussed Q1 roadmap
- Feature A is priority
- Feature B pushed to Q2 Sarah to send updated timeline by Friday Mike will review budget
Next meeting Jan 22
"""
formatter = MeetingNotesFormatter(raw_notes)
formatter.format()
formatter.save("meeting_notes.md")
raw_notes = """
Project sync Jan 15
Attendees: John, Sarah, Mike
Discussed Q1 roadmap
- Feature A is priority
- Feature B pushed to Q2 Sarah to send updated timeline by Friday Mike will review budget
Next meeting Jan 22
"""
formatter = MeetingNotesFormatter(raw_notes)
formatter.format()
formatter.save("meeting_notes.md")
Or save as PDF
或保存为PDF
formatter.save("meeting_notes.pdf")
undefinedformatter.save("meeting_notes.pdf")
undefinedFeatures
功能特性
- Auto-Detection: Identifies title, attendees, sections, action items
- Action Item Extraction: Pulls out tasks with owners and due dates
- Attendee Parsing: Extracts participant list from various formats
- Section Organization: Groups content into logical sections
- Output Formats: Markdown, PDF
- Templates: Structured output with consistent formatting
- 自动检测:识别标题、参会人员、章节和行动项
- 行动项提取:提取包含负责人和截止日期的任务
- 参会人员解析:从多种格式中提取参会人员列表
- 章节组织:将内容分组为逻辑章节
- 输出格式:支持Markdown、PDF
- 模板系统:结构化输出,格式保持一致
API Reference
API 参考
Initialization
初始化
python
undefinedpython
undefinedFrom string
从字符串初始化
formatter = MeetingNotesFormatter(raw_notes_string)
formatter = MeetingNotesFormatter(raw_notes_string)
From file
从文件初始化
formatter = MeetingNotesFormatter.from_file("notes.txt")
undefinedformatter = MeetingNotesFormatter.from_file("notes.txt")
undefinedFormatting
格式化
python
undefinedpython
undefinedAuto-format (detects structure)
自动格式化(检测结构)
formatter.format()
formatter.format()
With manual overrides
手动覆盖配置
formatter.set_title("Weekly Standup")
formatter.set_date("2024-01-15")
formatter.set_attendees(["John Smith", "Sarah Jones"])
formatter.format()
undefinedformatter.set_title("每周站会")
formatter.set_date("2024-01-15")
formatter.set_attendees(["John Smith", "Sarah Jones"])
formatter.format()
undefinedManual Configuration
手动配置
python
undefinedpython
undefinedSet meeting metadata
设置会议元数据
formatter.set_title("Project Review Meeting")
formatter.set_date("January 15, 2024")
formatter.set_time("2:00 PM - 3:00 PM")
formatter.set_location("Conference Room A")
formatter.set_title("项目评审会议")
formatter.set_date("2024年1月15日")
formatter.set_time("下午2:00 - 3:00")
formatter.set_location("A会议室")
Set attendees
设置参会人员
formatter.set_attendees(["John Smith", "Sarah Jones", "Mike Wilson"])
formatter.set_attendees(["John Smith", "Sarah Jones", "Mike Wilson"])
Add sections manually
手动添加章节
formatter.add_section("Discussion", [
"Reviewed Q1 roadmap",
"Discussed resource allocation",
"Agreed on priorities"
])
formatter.add_section("讨论内容", [
"评审Q1路线图",
"讨论资源分配",
"达成优先级共识"
])
Add action items
添加行动项
formatter.add_action_item("Send timeline update", owner="Sarah", due="Friday")
formatter.add_action_item("Review budget proposal", owner="Mike")
undefinedformatter.add_action_item("发送时间线更新", owner="Sarah", due="周五")
formatter.add_action_item("评审预算提案", owner="Mike")
undefinedOutput
输出
python
undefinedpython
undefinedGet formatted markdown
获取格式化后的Markdown内容
markdown = formatter.to_markdown()
markdown = formatter.to_markdown()
Save to file
保存到文件
formatter.save("notes.md") # Markdown
formatter.save("notes.pdf") # PDF
formatter.save("notes.md") # Markdown格式
formatter.save("notes.pdf") # PDF格式
Get structured data
获取结构化数据
data = formatter.to_dict()
undefineddata = formatter.to_dict()
undefinedAuto-Detection Features
自动检测功能
Title Detection
标题检测
Identifies meeting title from:
- First line if short and descriptive
- Lines containing "meeting", "sync", "standup", "review"
- Date patterns at start of notes
从以下内容识别会议标题:
- 简短且描述性的第一行
- 包含“meeting”、“sync”、“standup”、“review”的行
- 记录开头的日期模式
Attendee Detection
参会人员检测
Extracts attendees from:
- "Attendees: John, Sarah, Mike"
- "Present: John Smith, Sarah Jones"
- "Participants: @john @sarah @mike"
- Lists following attendee keywords
从以下格式提取参会人员:
- "Attendees: John, Sarah, Mike"
- "Present: John Smith, Sarah Jones"
- "Participants: @john @sarah @mike"
- 参会人员关键词后的列表
Action Item Detection
行动项检测
Identifies tasks from:
- "ACTION: Send report"
- "TODO: Review document"
- "[John] to send update"
- "Sarah will review by Friday"
- Lines with owner/assignee patterns
从以下内容识别任务:
- "ACTION: Send report"
- "TODO: Review document"
- "[John] to send update"
- "Sarah will review by Friday"
- 包含负责人/经办人模式的行
Date Detection
日期检测
Extracts dates from:
- "January 15, 2024"
- "2024-01-15"
- "01/15/2024"
- "Jan 15"
从以下格式提取日期:
- "January 15, 2024"
- "2024-01-15"
- "01/15/2024"
- "Jan 15"
Output Formats
输出格式
Markdown Output
Markdown输出
markdown
undefinedmarkdown
undefinedWeekly Project Sync
每周项目同步会
Date: January 15, 2024
Time: 2:00 PM - 3:00 PM
Attendees: John Smith, Sarah Jones, Mike Wilson
日期: 2024年1月15日
时间: 下午2:00 - 3:00
参会人员: John Smith, Sarah Jones, Mike Wilson
Discussion
讨论内容
- Reviewed Q1 roadmap progress
- Feature A is on track for release
- Feature B moved to Q2 due to resource constraints
- 评审Q1路线图进展
- Feature A按计划推进,即将发布
- 由于资源限制,Feature B推迟到Q2
Decisions
决策事项
- Prioritize performance improvements
- Delay new feature development until Q2
- 优先处理性能优化
- 新功能开发推迟至Q2
Action Items
行动项
| Task | Owner | Due Date |
|---|---|---|
| Send updated timeline | Sarah | Jan 19 |
| Review budget proposal | Mike | Jan 22 |
| Schedule follow-up | John | Jan 16 |
Next Meeting: January 22, 2024
undefined| 任务 | 负责人 | 截止日期 |
|---|---|---|
| 发送更新后的时间线 | Sarah | 1月19日 |
| 评审预算提案 | Mike | 1月22日 |
| 安排跟进会议 | John | 1月16日 |
下次会议: 2024年1月22日
undefinedPDF Output
PDF输出
Professional formatted PDF with:
- Clean typography
- Organized sections
- Action item table
- Header with meeting details
专业格式化的PDF文件包含:
- 清晰的排版
- 有序的章节
- 行动项表格
- 包含会议详情的页眉
CLI Usage
CLI使用方法
bash
undefinedbash
undefinedFormat notes file
格式化记录文件
python notes_formatter.py --input raw_notes.txt --output formatted.md
python notes_formatter.py --input raw_notes.txt --output formatted.md
Output as PDF
输出为PDF格式
python notes_formatter.py --input notes.txt --output notes.pdf
python notes_formatter.py --input notes.txt --output notes.pdf
With manual metadata
手动指定元数据
python notes_formatter.py --input notes.txt
--title "Weekly Standup"
--date "Jan 15, 2024"
--output standup.md
--title "Weekly Standup"
--date "Jan 15, 2024"
--output standup.md
undefinedpython notes_formatter.py --input notes.txt
--title "每周站会"
--date "2024年1月15日"
--output standup.md
--title "每周站会"
--date "2024年1月15日"
--output standup.md
undefinedCLI Arguments
CLI参数
| Argument | Description | Default |
|---|---|---|
| Input text file | Required |
| Output file path | |
| Meeting title override | Auto-detect |
| Meeting date override | Auto-detect |
| Output template | |
| 参数 | 描述 | 默认值 |
|---|---|---|
| 输入文本文件 | 必填 |
| 输出文件路径 | |
| 手动指定会议标题 | 自动检测 |
| 手动指定会议日期 | 自动检测 |
| 输出模板 | |
Examples
示例
Raw Notes Input
原始会议记录输入
text
Team standup 1/15
john sarah mike present
Updates:
- John: finished API integration
- Sarah: working on frontend
- Mike: reviewing PRs
Blockers:
Sarah blocked on design specs
need mike to review sarah's PR
action items:
john to deploy to staging today
sarah follow up with design team
mike review PR by EOD
next standup wednesdaytext
Team standup 1/15
john sarah mike present
Updates:
- John: finished API integration
- Sarah: working on frontend
- Mike: reviewing PRs
Blockers:
Sarah blocked on design specs
need mike to review sarah's PR
action items:
john to deploy to staging today
sarah follow up with design team
mike review PR by EOD
next standup wednesdayFormatted Output
格式化后输出
markdown
undefinedmarkdown
undefinedTeam Standup
团队站会
Date: January 15, 2024
Attendees: John, Sarah, Mike
日期: 2024年1月15日
参会人员: John, Sarah, Mike
Updates
更新内容
- John: Finished API integration
- Sarah: Working on frontend
- Mike: Reviewing PRs
- John: 完成API集成
- Sarah: 开发前端功能
- Mike: 评审PR
Blockers
阻塞问题
- Sarah blocked on design specs
- Need Mike to review Sarah's PR
- Sarah因设计规范受阻
- 需要Mike评审Sarah的PR
Action Items
行动项
| Task | Owner | Due |
|---|---|---|
| Deploy to staging | John | Today |
| Follow up with design team | Sarah | - |
| Review PR | Mike | EOD |
Next Meeting: Wednesday
undefined| 任务 | 负责人 | 截止日期 |
|---|---|---|
| 部署到预发布环境 | John | 今日 |
| 跟进设计团队 | Sarah | - |
| 评审PR | Mike | 当日结束前 |
下次会议: 周三
undefinedProject Review Notes
项目评审记录示例
python
notes = """
Q4 Review - Dec 15
Present: Leadership team, Product, Engineering
Revenue exceeded targets by 12%
Customer satisfaction at 94%
Engineering delivered 15 of 18 planned features
Challenges:
- Hiring slower than expected
- Two key features delayed
2024 Planning:
Q1 focus on performance
Q2 new product launch
Need budget approval for new hires
Actions:
CEO to approve headcount by Dec 20
VP Eng to present technical roadmap
Product to finalize Q1 priorities
"""
formatter = MeetingNotesFormatter(notes)
formatter.format()
formatter.save("q4_review.pdf")python
notes = """
Q4 Review - Dec 15
Present: Leadership team, Product, Engineering
Revenue exceeded targets by 12%
Customer satisfaction at 94%
Engineering delivered 15 of 18 planned features
Challenges:
- Hiring slower than expected
- Two key features delayed
2024 Planning:
Q1 focus on performance
Q2 new product launch
Need budget approval for new hires
Actions:
CEO to approve headcount by Dec 20
VP Eng to present technical roadmap
Product to finalize Q1 priorities
"""
formatter = MeetingNotesFormatter(notes)
formatter.format()
formatter.save("q4_review.pdf")Templates
模板
Standard (Default)
标准模板(默认)
- Title and metadata header
- Sections with bullet points
- Action items table
- Next meeting footer
- 标题和元数据页眉
- 带项目符号的章节
- 行动项表格
- 下次会议页脚
Minimal
极简模板
- Simple markdown
- No tables
- Compact format
- 简洁的Markdown格式
- 无表格
- 紧凑布局
Detailed
详细模板
- Full metadata
- Timestamps
- Expanded sections
- Decision log
- 完整元数据
- 时间戳
- 展开的章节
- 决策日志
Dependencies
依赖项
reportlab>=4.0.0
python-dateutil>=2.8.0reportlab>=4.0.0
python-dateutil>=2.8.0Limitations
局限性
- English language only
- Best with structured raw notes
- May miss context in very informal notes
- PDF styling is basic
- 仅支持英文
- 对结构化的原始记录处理效果最佳
- 可能无法识别非常非正式记录中的上下文
- PDF样式较为基础