Warren 6205748519
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
虚拟Tree文件夹操作完整实现:folder增删改 + ls/cp/mv操作(330行代码)
虚拟Tree操作命令扩展:
- Tree管理:create/list/import/delete(已有)
- Folder操作:create/delete/rename(新增)
- 文件操作:ls/cp/mv(新增)

Folder操作命令:
 folder create: 创建文件夹(path/name/tree_type)
   markbase interface tree folder create --user accusys --path / --name NewFolder --tree-type categories

 folder delete: 删除文件夹(path/name/tree_type)
   markbase interface tree folder delete --user accusys --path / --name OldFolder --tree-type categories

 folder rename: 重命名文件夹(path/old_name/new_name/tree_type)
   markbase interface tree folder rename --user accusys --path / --old-name OldName --new-name NewName --tree-type categories

文件操作命令:
 ls: 列出文件夹内容(path/tree_type)
   markbase interface tree ls --user accusys --path /Downloads --tree-type categories
   输出:📁文件夹 📄文件,带文件大小显示

 cp: 复制文件/文件夹(source/target/tree_type)
   markbase interface tree cp --user accusys --source /Downloads/File.txt --target /Backup --tree-type categories
   生成新node_id,保持原文件属性

 mv: 移动/重命名文件/文件夹(source/target/tree_type)
   markbase interface tree mv --user accusys --source /Downloads/File.txt --target /Archive --tree-type categories
   更新parent_id,不生成新node_id

技术实现:
- 使用SQLite数据库(file_nodes表)
- Path解析:支持多级路径(/path/to/folder)
- Node查找:递归查找parent_id
- UUID生成:Uuid::new_v4()
- 时间戳:chrono::Utc::now().to_rfc3339()

数据表结构:
- node_id: TEXT PRIMARY KEY(UUID)
- label: TEXT NOT NULL(文件夹/文件名)
- parent_id: TEXT(父文件夹ID)
- node_type: TEXT(folder/file)
- tree_type: TEXT(categories/series)
- file_uuid: TEXT(文件UUID)
- file_size: INTEGER(文件大小)
- created_at/updated_at: TEXT(时间戳)

代码统计:
- tree.rs: 330行(新增263行)
- 编译成功:151警告,0错误
- 修改文件:1个(tree.rs)

Git提交:
- 文件变更:markbase-core/src/cli/interface/tree.rs
- 新增代码:263行功能实现
- 编译状态:成功
2026-06-13 02:31:32 +08:00
2026-06-12 12:59:54 +08:00
2026-06-10 22:47:34 +08:00
2026-05-16 15:37:37 +08:00
2026-05-16 15:37:37 +08:00
2026-05-16 15:37:37 +08:00
2026-05-16 15:37:37 +08:00
2026-05-16 15:37:37 +08:00
2026-05-16 15:37:37 +08:00

MarkBase

Momentry Display Engine - Markdown渲染與檔案樹管理系統

功能特色

  • Markdown渲染支援表格、footnote、tasklist -檔案樹管理SQLite持久化
  • REST API18+路由)
  • macOS音訊控制音訊裝置切換、音量控制 -多種顯示模式tree, list, grid_sm, grid_lg

##安裝

###必要條件

  • Rust 1.92+
  • macOS音訊功能需 macOS
  • SwitchAudioSource音訊裝置切換
#安裝 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

#安裝 SwitchAudioSourcemacOS
brew install switchaudio-source

###建構

cargo build

##使用

###啟動伺服器

cargo run -- display                #預設 port 11438
cargo run -- display -p8080         #自訂 port
cargo run -- display README.md      #顯示指定檔案

###渲染 Markdown

cargo run -- render README.md       #輸出到 stdout
cargo run -- render README.md -o output.html

##測試

cargo test                          #執行所有測試
cargo test test_insert              #執行特定測試

File Tree功能

REST API

路由 方法 功能
/api/v2/tree/:user_id GET 取得檔案樹
/api/v2/tree/:user_id/node POST 建立節點
/api/v2/tree/:user_id/node/:node_id PUT/DELETE 更新/刪除節點
/api/v2/tree/:user_id/node/:node_id/move PUT 移動節點
/api/v2/tree/:user_id/node/:node_id/alias PATCH 更新別名

###顯示模式

  • tree - 樹狀顯示
  • list - 列表顯示
  • grid_sm - 小格狀顯示
  • grid_lg - 大格狀顯示

###範例

curl http://localhost:11438/api/v2/tree/demo?mode=tree
curl http://localhost:11438/api/v2/tree/demo?mode=list

Demo資料

  • data/users/demo.sqlite - 50節點範例資料
  • data/cache/ -範例檔案

##開發

AGENTS.md詳細開發指南。

CI/CD

使用 Gitea Actionshttps://gitea.momentry.ddns.net

License

MIT

Description
No description provided
Readme 179 MiB
Languages
C 43.6%
Rust 20.1%
D 15.6%
Assembly 8.9%
Swift 3.3%
Other 8.3%