#!/usr/bin/env python3 """ 将食品订单班的Markdown文档转换为JSON格式 """ import json import re from pathlib import Path def parse_markdown_to_json(): """解析Markdown文档并转换为JSON""" # 路径设置 base_path = Path("/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示") md_file = base_path / "data/订单班文档资料/食品/notion文稿/中高端个性化轻食店铺经营方案 278d463fce51805081f7cfdc7280f4a4.md" # 读取Markdown文件 with open(md_file, 'r', encoding='utf-8') as f: content = f.read() # 数据结构 data = { "title": "中高端个性化轻食店铺经营方案", "category": "食品", "description": "一个针对年轻消费群体的中高端轻食品牌经营方案", "sections": [], "images": [] } # 提取所有图片 images = re.findall(r'!\[([^\]]*)\]\(([^)]+)\)', content) for alt, path in images: # 清理路径 clean_path = path.replace('./image/', '') data["images"].append({ "alt": alt, "src": f"images/food/{clean_path}" }) # 按章节解析内容 sections_pattern = r'^# ([^#\n]+)\n((?:(?!^#).*\n?)*)' sections = re.findall(sections_pattern, content, re.MULTILINE) for section_title, section_content in sections: if section_title.strip() == "中高端个性化轻食店铺经营方案": continue section_data = { "title": section_title.strip(), "content": [], "subsections": [] } # 解析二级标题 subsections_pattern = r'^## ([^#\n]+)\n((?:(?!^##).*\n?)*)' subsections = re.findall(subsections_pattern, section_content, re.MULTILINE) for subsection_title, subsection_content in subsections: subsection_data = { "title": subsection_title.strip(), "content": [] } # 清理内容 lines = subsection_content.strip().split('\n') for line in lines: line = line.strip() if line and not line.startswith('!['): # 处理列表项 if line.startswith('- '): subsection_data["content"].append({ "type": "list-item", "text": line[2:].strip() }) elif line.startswith('**') and line.endswith('**'): subsection_data["content"].append({ "type": "bold", "text": line[2:-2].strip() }) else: subsection_data["content"].append({ "type": "text", "text": line }) section_data["subsections"].append(subsection_data) # 如果没有二级标题,直接解析内容 if not subsections: lines = section_content.strip().split('\n') for line in lines: line = line.strip() if line and not line.startswith('![') and not line.startswith('##'): section_data["content"].append({ "type": "text", "text": line }) data["sections"].append(section_data) # 添加关键指标 data["highlights"] = { "target": "年轻白领、健身爱好者、追求品质生活的群体", "investment": "50-100万元", "location": "商业区、写字楼密集区", "features": [ "健康营养的轻食产品", "个性化定制服务", "舒适的就餐环境", "线上线下融合运营" ], "advantages": [ "市场需求旺盛", "毛利率较高", "品牌差异化明显", "复购率高" ] } return data def main(): """主函数""" print("开始转换食品订单班数据...") # 转换数据 data = parse_markdown_to_json() # 保存JSON文件 output_dir = Path("/Users/xiaoqi/Documents/Dev/Project/2025-09-08_n8nDEMO演示/web_frontend/data") output_dir.mkdir(exist_ok=True) output_file = output_dir / "food_order_data.json" with open(output_file, 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=2) print(f"✅ 数据已保存到: {output_file}") print(f" - 章节数: {len(data['sections'])}") print(f" - 图片数: {len(data['images'])}") if __name__ == "__main__": main()