Skip to content

Repository files navigation

Workspace Board / 临时工作区

一个轻量、可分享、可加密、可自动过期的临时工作区系统。

它适合用来快速整理并分享:

  • Markdown 文本草稿
  • 图片与附件
  • 带访问控制的临时资料页

核心特性

  • 文本块支持所见即所得 Markdown 编辑、渲染/源码切换、代码高亮和自动保存
  • 文件块支持图片网格、文件列表、批量选择和 ZIP 打包下载
  • 图片预览支持缩放、旋转、翻转、拖拽、取色和链接复制
  • 工作区支持访问密码、管理密码、过期自动清理
  • 前后端单仓库,支持本地运行和 Docker 部署

技术栈

  • 前端:React 19、TypeScript、Vite、React Router、dnd-kit、Milkdown、react-markdown
  • 后端:Express 5、TypeScript、Multer
  • 数据与存储:SQLite + 本地磁盘目录
  • 工程护栏:ESLint、TypeScript typecheck、Vite build

快速开始

1. 安装依赖

npm install

2. 准备环境变量

复制 .env.example.env,至少确认以下变量:

  • PORT
  • APP_BASE_URL
  • DATA_DIR
  • JWT_SECRET
  • EDIT_SESSION_TTL_HOURS
  • MAX_FILE_SIZE_MB

3. 本地开发

npm run dev

默认情况下:

  • 前端开发服务运行在 http://localhost:5173
  • 后端服务运行在 http://localhost:3000
  • 工作区页面路径为 http://localhost:5173/s/:slug

4. 构建与启动生产版本

npm run build
npm run start

质量检查

提交前建议至少执行:

npm run typecheck
npm run lint
npm run build

目录结构

client/
  public/
  src/
    components/
      file-block/
      image-preview/
      text-block/
    hooks/
    pages/
    styles/

server/
  src/
    db/
    http/
    routes/
    services/
    auth.ts
    config.ts
    db.ts
    dto.ts
    index.ts
    utils.ts

docs/
  architecture.md
  development-guide.md
  deployment.md

当前结构要点

分包与性能优化

当前前端已做两层按需加载:

  • 路由级分包:HomePageWorkspacePage
  • 重功能分包:BlockListImagePreviewModalFilePreviewModal

同时,Vite 构建中对 dnd-kit 和 Markdown 编辑器依赖分别做了独立 vendor chunk,避免拖拽与富编辑器依赖直接挤进主业务包。

文档导航

仓库约定

  • 新增和重构代码默认补充中文注释
  • 用户可见文案默认使用简体中文
  • 样式遵循“共享骨架在 blocks.css,业务细节在模块样式文件”的原则
  • 临时日志、截图、浏览器调试产物不进入仓库

About

轻量级临时工作区系统,用于短周期资料创建、分享和沉淀

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages