From 09c2a03cefa687832257d3b816da50db3cfcc0f2 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Sat, 25 Jul 2026 23:48:11 +0800
Subject: [PATCH] feat: 实现输出格式化
---
internal/vault/scanner.go | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/internal/vault/scanner.go b/internal/vault/scanner.go
new file mode 100644
index 0000000..f19def5
--- /dev/null
+++ b/internal/vault/scanner.go
@@ -0,0 +1,38 @@
+package vault
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+// ScanVault 扫描知识库目录,返回所有 markdown 文件的元数据
+func ScanVault(vaultPath string) ([]*FileMeta, error) {
+ var files []*FileMeta
+
+ err := filepath.Walk(vaultPath, func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return nil // 跳过错误文件
+ }
+ if info.IsDir() {
+ // 跳过隐藏目录
+ if strings.HasPrefix(info.Name(), ".") && info.Name() != "." {
+ return filepath.SkipDir
+ }
+ return nil
+ }
+ if !strings.HasSuffix(path, ".md") {
+ return nil
+ }
+
+ relPath, _ := filepath.Rel(vaultPath, path)
+ meta, err := ParseFile(path, relPath)
+ if err != nil {
+ return nil // 跳过解析失败的文件
+ }
+ files = append(files, meta)
+ return nil
+ })
+
+ return files, err
+}
--
Gitblit v1.9.1