fix local folder resource lifecycle

This commit is contained in:
lix-2026
2026-05-24 01:49:51 +08:00
parent 5f97800489
commit 97953101a2
16 changed files with 1392 additions and 154 deletions
@@ -10201,12 +10201,12 @@ fn main() {}
})
.expect("page row");
// 有 H1 且无 frontmatter title 时,标题来自 H1
assert_eq!(row["title"].as_str(), Some("Body Heading"));
// 本地 Markdown 标题来自文件名,正文 H1 只作为正文内容
assert_eq!(row["title"].as_str(), Some("File Name"));
let aggregate = resolve_local_markdown_page_aggregate(&root_uri, "local-md:File~20Name.md")
.expect("aggregate");
assert_eq!(aggregate.title, "Body Heading");
assert_eq!(aggregate.title, "File Name");
let _ = std::fs::remove_dir_all(&root);
}
@@ -11386,12 +11386,11 @@ fn main() {}
let snapshot = load_local_folder_page_tree_snapshot(&root_uri).expect("load page tree");
let items = snapshot.projection["items"].as_array().expect("items");
// 找到 Root 页面节点和 Child 页面节点。
// 标题优先级:H1"Body Root" / "Body Child")高于文件名。
// 找到 Root 页面节点和 Child 页面节点。标题来自文件名,不来自正文 H1。
let root_node = items
.iter()
.find(|item| {
item["title"].as_str() == Some("Body Root")
item["title"].as_str() == Some("Root")
&& item["resourceMeta"]["resourceKind"].as_str() == Some("document")
})
.expect("Root page node");
@@ -11399,7 +11398,7 @@ fn main() {}
let child_node = items
.iter()
.find(|item| {
item["title"].as_str() == Some("Body Child")
item["title"].as_str() == Some("Child")
&& item["resourceMeta"]["resourceKind"].as_str() == Some("document")
})
.expect("Child page node");