ai_xiaopei
2 days ago ec01248346a93a9ca13f86970998e239c62132e4
cmd/draft.go
@@ -28,10 +28,11 @@
}
var draftListCmd = &cobra.Command{
   Use:   "list",
   Use:   "list [一级目录名]",
   Short: "列出所有活跃草稿",
   Long: `# draft list - 列出所有活跃草稿
kb-cli draft list [--json] # 列出待审阅区的所有草稿(目录结构 + 老格式单文件)`,
kb-cli draft list [--json] # 列出待审阅区的所有草稿(目录结构 + 老格式单文件)
kb-cli draft list TAPD提取 # 只列出指定一级目录下的草稿`,
   RunE: runDraftList,
}
@@ -150,6 +151,12 @@
// runDraftList 列出所有活跃草稿
func runDraftList(cmd *cobra.Command, args []string) error {
   // 可选参数:指定一级目录过滤
   filterType := ""
   if len(args) > 0 {
      filterType = args[0]
   }
   // 创建草稿录入器
   intake := draft.NewIntake(vaultPath, nil)
@@ -159,6 +166,17 @@
      return fmt.Errorf("列出草稿失败: %w", err)
   }
   // 按一级目录过滤
   if filterType != "" {
      var filtered []draft.DraftInfo
      for _, d := range drafts {
         if d.Type == filterType {
            filtered = append(filtered, d)
         }
      }
      drafts = filtered
   }
   if draftJSON {
      // JSON 输出
      output := struct {
@@ -175,11 +193,19 @@
   // 表格输出
   if len(drafts) == 0 {
      fmt.Println("没有活跃草稿")
      if filterType != "" {
         fmt.Printf("没有找到类型为 '%s' 的活跃草稿\n", filterType)
      } else {
         fmt.Println("没有活跃草稿")
      }
      return nil
   }
   fmt.Printf("找到 %d 个活跃草稿:\n\n", len(drafts))
   if filterType != "" {
      fmt.Printf("找到 %d 个类型为 '%s' 的活跃草稿:\n\n", len(drafts), filterType)
   } else {
      fmt.Printf("找到 %d 个活跃草稿:\n\n", len(drafts))
   }
   for _, d := range drafts {
      mergeStatus := "❌"
      if d.HasMergeHint {