From 7e35b592c0cbd8c5f01482680811d7236e4eebd7 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Tue, 25 Aug 2026 16:31:26 +0800
Subject: [PATCH] 日记与笔记文件: YY.MMDD 前缀批量改为 YYYY-MM-DD

---
 X2.Archived/scripts/sync_0inbox.py |   23 ++++++++++++-----------
 1 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/X2.Archived/scripts/sync_0inbox.py b/X2.Archived/scripts/sync_0inbox.py
index 7b6887d..42d1fd0 100644
--- a/X2.Archived/scripts/sync_0inbox.py
+++ b/X2.Archived/scripts/sync_0inbox.py
@@ -26,9 +26,11 @@
 扫描范围(用户指定)
 --------------------
 - 顶层黑名单 EXCLUDE_TOP 整棵子树不扫:X2.Archived / 00index / X1.Knomo / X.Attachment / P3.bobo
+- 嵌套黑名单 EXCLUDE_PATHS 整棵子树不扫:02DS/02copilot(Copilot 对话日志)、
+  02DS/01dril-book(读书笔记库);两者均「永不从其中取内容生成 tagfeed」。
 - 仅扫描后缀 SCAN_EXT:.md .markdown .excalidraw .canvas;其它后缀一律跳过
-- markdown 只抽标准 `tags:` frontmatter 与正文 #tag;topic/category/type 等
-  元数据字段不再当作标签(避免 copilot 对话、读书笔记的元数据被误建页)
+- markdown 只抽标准 `tags:` frontmatter 与正文 #tag;topic/category/keywords/type 等
+  元数据字段绝不当作标签(避免 copilot 对话、读书笔记的元数据被误建页)
 
 幂等 & 安全
 ----------
@@ -142,9 +144,10 @@
 SCAN_EXT = {".md", ".markdown", ".excalidraw", ".canvas"}
 EXCLUDE_TOP = {"X2.Archived", "00index", "X1.Knomo", "X.Attachment", "P3.bobo"}
 # 嵌套路径排除(只排除指定子树,不影响其同级目录)。
-# 例:02DS/02copilot 是 Obsidian Copilot 的对话日志,其 topic: 字段与聊天正文
-# 不应被当作标签扫描(与 tagfeed 模板的 excludedPaths 保持一致)。
-EXCLUDE_PATHS = {"02DS/02copilot"}
+# 02DS/02copilot:Obsidian Copilot 对话日志,topic: 字段与聊天正文不应被当作标签扫描。
+# 02DS/01dril-book:读书笔记库,其正文/元数据亦不希望进入 tagfeed 体系。
+# 两者「永不从其中取内容」(与 tagfeed 模板的 excludedPaths 保持一致)。
+EXCLUDE_PATHS = {"02DS/02copilot", "02DS/01dril-book"}
 INBOX_DIR = "0inbox"
 EXCLUDE_DIRS = {".obsidian", ".trash", ".git", ".agents", ".claude",
                 ".copilot", ".opencode", ".smart-env", ".workbuddy"}
@@ -206,11 +209,9 @@
                             tok = tok.strip().lstrip("#")
                             if tok:
                                 tags.add(tok)
-                for val in fm.values():
-                    for tok in split_fm_value(val):
-                        mm = TAG_RE.search(str(tok))
-                        if mm:
-                            tags.add(mm.group(1))
+                # 注意:不再遍历所有 frontmatter 值去抽取 #tag。
+                # 否则 topic/category/keywords 等元数据字段里出现的 # 文本
+                # 会被误判为标签,违背「这类字段不生成 tagfeed 页」的约定。
         in_fence = False
         for line in body.splitlines():
             if line.lstrip().startswith("```"):
@@ -258,7 +259,7 @@
             "> 本页由 DataviewJS 实时计算,笔记有变动时自动刷新。\n\n"
             "```dataviewjs\n"
             "const targetTag = \"__TARGET_TAG__\";\n"
-            "const excludedPaths = [\"X2.Archived\", \"X0.Clippings\", \"X1.Knomo\", \"02DS/02copilot\", \".agents\", \".claude\", \".copilot\", \".opencode\", \".smart-env\", \".workbuddy\", \".trash\"];\n"
+            "const excludedPaths = [\"X2.Archived\", \"X0.Clippings\", \"X1.Knomo\", \"02DS/02copilot\", \"02DS/01dril-book\", \".agents\", \".claude\", \".copilot\", \".opencode\", \".smart-env\", \".workbuddy\", \".trash\"];\n"
             "dv.paragraph(\"#\" + targetTag + \" 聚合占位\");\n"
             "```\n"
         )

--
Gitblit v1.9.3