From ec01248346a93a9ca13f86970998e239c62132e4 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Thu, 03 Sep 2026 14:15:59 +0800
Subject: [PATCH] feat(draft): draft list 支持按一级目录过滤,Type 改从路径提取
---
internal/graph/builder.go | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/internal/graph/builder.go b/internal/graph/builder.go
index 428535b..ce5f0ea 100644
--- a/internal/graph/builder.go
+++ b/internal/graph/builder.go
@@ -15,13 +15,19 @@
labelToID := make(map[string]int64)
nextVirtualID := int64(1000000) // 虚拟节点从 1000000 开始
- getOrCreateVirtualNode := func(label string) int64 {
+ getOrCreateVirtualNode := func(label, nodeType string) int64 {
if id, ok := labelToID[label]; ok {
return id
}
id := nextVirtualID
nextVirtualID++
labelToID[label] = id
+ g.Nodes = append(g.Nodes, &Node{
+ ID: id,
+ Path: label, // label 已含 "tag:"/"entity:" 前缀
+ Title: strings.TrimPrefix(strings.TrimPrefix(label, "tag:"), "entity:"),
+ NodeType: nodeType,
+ })
return id
}
@@ -31,6 +37,7 @@
Path: f.Path,
Title: f.Title,
Section: f.Section,
+ NodeType: "file",
Tags: f.Tags,
Entities: f.Entities,
Wikilinks: f.Wikilinks,
@@ -40,7 +47,7 @@
// 创建 tag 边
for _, tag := range f.Tags {
- virtualID := getOrCreateVirtualNode("tag:" + tag)
+ virtualID := getOrCreateVirtualNode("tag:"+tag, "tag")
g.Edges = append(g.Edges, &Edge{
FromNode: node.ID,
ToNode: virtualID,
@@ -51,7 +58,7 @@
// 创建 entity 边
for _, entity := range f.Entities {
- virtualID := getOrCreateVirtualNode("entity:" + entity)
+ virtualID := getOrCreateVirtualNode("entity:"+entity, "entity")
g.Edges = append(g.Edges, &Edge{
FromNode: node.ID,
ToNode: virtualID,
--
Gitblit v1.10.0