feat: CutThenThink v3.0 初始版本

完整实现 Tauri + Vanilla JS 轻量级截图工具

Phase 1 - 项目搭建
- Tauri 2.x 项目初始化
- Vite 前端项目搭建
- 基础 UI 框架(CSS 变量、组件库)
- 构建配置优化

Phase 2 - 核心截图功能
- 全屏/区域/窗口截图
- 截图预览和管理
- 文件命名和缩略图
- 全局快捷键集成

Phase 3 - 上传与存储
- 多图床上传(GitHub/Imgur/自定义)
- 配置管理系统
- SQLite 数据库

Phase 4 - OCR 集成
- 云端 OCR(百度/腾讯云)
- 插件管理系统
- 本地 OCR 插件(Go)
- OCR 结果处理

Phase 5 - AI 分类系统
- Claude/OpenAI API 集成
- Prompt 模板引擎
- 模板管理界面
- 自动分类流程

Phase 6 - 历史记录与管理
- 图库视图(网格/列表)
- 搜索与筛选
- 批量操作
- 导出功能(JSON/CSV/ZIP)

Phase 7 - 打包与发布
- 多平台构建配置
- CI/CD 工作流
- 图标和资源
- 安装包配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Claude
2026-02-12 18:58:40 +08:00
commit e2ea309ee6
142 changed files with 38818 additions and 0 deletions

81
scripts/build.sh Normal file
View File

@@ -0,0 +1,81 @@
#!/bin/bash
# Build script for CutThenThink Lite
set -e
echo "Building CutThenThink Lite..."
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Detect OS
OS="unknown"
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
OS="linux"
elif [[ "$OSTYPE" == "darwin"* ]]; then
OS="macos"
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "win32" ]]; then
OS="windows"
fi
echo -e "${GREEN}Detected OS: $OS${NC}"
# Check dependencies
if [ "$OS" == "linux" ]; then
echo -e "${YELLOW}Checking Linux dependencies...${NC}"
# Check if running as root
if [ "$EUID" -ne 0 ]; then
echo -e "${YELLOW}Note: Some dependencies may require sudo${NC}"
fi
# Check for required packages
MISSING=()
for pkg in libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf; do
if ! dpkg -l | grep -q "$pkg"; then
MISSING+=("$pkg")
fi
done
if [ ${#MISSING[@]} -gt 0 ]; then
echo -e "${RED}Missing dependencies: ${MISSING[*]}${NC}"
echo -e "${YELLOW}Install them with:${NC}"
echo "sudo apt-get install -y ${MISSING[*]}"
exit 1
fi
echo -e "${GREEN}All dependencies installed${NC}"
fi
# Check Node.js
if ! command -v node &> /dev/null; then
echo -e "${RED}Node.js is not installed${NC}"
exit 1
fi
# Check npm
if ! command -v npm &> /dev/null; then
echo -e "${RED}npm is not installed${NC}"
exit 1
fi
# Check Rust/Cargo
if ! command -v cargo &> /dev/null; then
echo -e "${RED}Rust/Cargo is not installed${NC}"
echo -e "${YELLOW}Install from: https://rustup.rs/${NC}"
exit 1
fi
echo -e "${GREEN}Installing Node dependencies...${NC}"
npm ci
echo -e "${GREEN}Building frontend...${NC}"
npm run build
echo -e "${GREEN}Building Tauri application...${NC}"
npm run tauri build
echo -e "${GREEN}Build complete!${NC}"
echo -e "Output directory: src-tauri/target/release/bundle/"