From ac966af3d126d59081d119e05ba02f946257f669 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Sun, 26 Jul 2026 23:22:36 +0800
Subject: [PATCH] fix: 移除所有help中的等号格式
---
scripts/update-frontmatter.py | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 109 insertions(+), 0 deletions(-)
diff --git a/scripts/update-frontmatter.py b/scripts/update-frontmatter.py
new file mode 100644
index 0000000..d03ff83
--- /dev/null
+++ b/scripts/update-frontmatter.py
@@ -0,0 +1,109 @@
+#!/usr/bin/env python3
+"""
+根据 classification.json 更新所有文档的 frontmatter
+"""
+
+import json
+import os
+import re
+import sys
+from pathlib import Path
+
+def load_classification(vault_path):
+ """加载分类结果"""
+ with open(os.path.join(vault_path, 'classification.json'), 'r', encoding='utf-8') as f:
+ return json.load(f)
+
+def load_migration_plan(vault_path):
+ """加载迁移计划"""
+ with open(os.path.join(vault_path, 'migration-plan.json'), 'r', encoding='utf-8') as f:
+ return json.load(f)
+
+def update_frontmatter(file_path, platform, device):
+ """更新文件的 frontmatter"""
+ with open(file_path, 'r', encoding='utf-8') as f:
+ content = f.read()
+
+ # 检查是否有 frontmatter
+ if not content.startswith('---'):
+ # 添加新的 frontmatter
+ new_content = f'---\nplatform: {platform}\ndevice: {device}\n---\n\n{content}'
+ with open(file_path, 'w', encoding='utf-8') as f:
+ f.write(new_content)
+ return True
+
+ # 解析现有 frontmatter
+ parts = content.split('---', 2)
+ if len(parts) < 3:
+ return False
+
+ frontmatter = parts[1]
+ body = parts[2]
+
+ # 更新或添加 platform
+ if 'platform:' in frontmatter:
+ frontmatter = re.sub(r'platform:.*', f'platform: {platform}', frontmatter)
+ else:
+ frontmatter += f'\nplatform: {platform}'
+
+ # 更新或添加 device
+ if 'device:' in frontmatter:
+ frontmatter = re.sub(r'device:.*', f'device: {device}', frontmatter)
+ else:
+ frontmatter += f'\ndevice: {device}'
+
+ # 写回文件
+ new_content = f'---{frontmatter}---{body}'
+ with open(file_path, 'w', encoding='utf-8') as f:
+ f.write(new_content)
+
+ return True
+
+def main():
+ vault_path = sys.argv[1] if len(sys.argv) > 1 else '.'
+
+ # 加载分类结果和迁移计划
+ classification = load_classification(vault_path)
+ migration_plan = load_migration_plan(vault_path)
+
+ # 创建源路径到分类的映射
+ source_to_class = {}
+ for item in classification['items']:
+ source_to_class[item['path']] = {
+ 'platform': item['platform'],
+ 'device': item['device']
+ }
+
+ # 更新所有迁移的文件
+ updated = 0
+ skipped = 0
+
+ for migration in migration_plan['migrations']:
+ target_path = os.path.join(vault_path, migration['target'])
+ source_path = migration['source']
+
+ if not os.path.exists(target_path):
+ print(f'跳过(文件不存在): {target_path}')
+ skipped += 1
+ continue
+
+ # 获取分类信息
+ if source_path not in source_to_class:
+ print(f'跳过(无分类信息): {source_path}')
+ skipped += 1
+ continue
+
+ class_info = source_to_class[source_path]
+
+ # 更新 frontmatter
+ if update_frontmatter(target_path, class_info['platform'], class_info['device']):
+ print(f'已更新: {migration["target"]}')
+ updated += 1
+ else:
+ print(f'更新失败: {migration["target"]}')
+ skipped += 1
+
+ print(f'\n更新完成: {updated} 个文件已更新, {skipped} 个文件跳过')
+
+if __name__ == '__main__':
+ main()
--
Gitblit v1.9.1