chore: 初始化 BlockFlow Workbench 仓库

建立前端与 Tauri 桌面端的首个版本提交,包含核心编辑器、项目文件读写、测试与构建配置。

补充 Git 忽略规则和换行规范,排除依赖、构建产物、本地运行日志与临时验证文件,方便在其他电脑继续开发。
This commit is contained in:
2026-05-29 17:23:43 +08:00
commit 589ff15213
88 changed files with 31656 additions and 0 deletions

4726
src-tauri/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

14
src-tauri/Cargo.toml Normal file
View File

@@ -0,0 +1,14 @@
[package]
name = "blockflow-workbench"
version = "0.1.0"
description = "BlockFlow Workbench desktop shell"
authors = ["BlockFlow Workbench"]
edition = "2021"
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dependencies]
tauri = { version = "2", features = [] }
tauri-plugin-dialog = "2"
tauri-plugin-fs = "2"

3
src-tauri/build.rs Normal file
View File

@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}

View File

@@ -0,0 +1,18 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Permissions for the BlockFlow Workbench desktop window.",
"windows": ["main"],
"permissions": [
"core:default",
"dialog:default",
"dialog:allow-open",
"fs:default",
"fs:allow-exists",
"fs:allow-lstat",
"fs:allow-mkdir",
"fs:allow-read-dir",
"fs:allow-read-text-file",
"fs:allow-write-text-file"
]
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"default":{"identifier":"default","description":"Permissions for the BlockFlow Workbench desktop window.","local":true,"windows":["main"],"permissions":["core:default","dialog:default","dialog:allow-open","fs:default","fs:allow-exists","fs:allow-lstat","fs:allow-mkdir","fs:allow-read-dir","fs:allow-read-text-file","fs:allow-write-text-file"]}}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

BIN
src-tauri/icons/icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

19
src-tauri/src/main.rs Normal file
View File

@@ -0,0 +1,19 @@
use std::path::PathBuf;
use tauri_plugin_fs::FsExt;
#[tauri::command]
fn allow_project_directory(app: tauri::AppHandle, path: String) -> Result<(), String> {
app.fs_scope()
.allow_directory(PathBuf::from(path), true)
.map_err(|error| error.to_string())
}
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_dialog::init())
.plugin(tauri_plugin_fs::init())
.invoke_handler(tauri::generate_handler![allow_project_directory])
.run(tauri::generate_context!())
.expect("error while running BlockFlow Workbench");
}

31
src-tauri/tauri.conf.json Normal file
View File

@@ -0,0 +1,31 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "BlockFlow Workbench",
"version": "0.1.0",
"identifier": "com.blockflow.workbench",
"build": {
"beforeDevCommand": "npm run dev",
"beforeBuildCommand": "npm run build",
"devUrl": "http://localhost:5173",
"frontendDist": "../dist"
},
"app": {
"windows": [
{
"label": "main",
"title": "BlockFlow Workbench",
"width": 1280,
"height": 800,
"minWidth": 960,
"minHeight": 640
}
],
"security": {
"csp": null
}
},
"bundle": {
"active": true,
"targets": "all"
}
}