Skip to content

Latest commit

 

History

History
224 lines (180 loc) · 6.48 KB

File metadata and controls

224 lines (180 loc) · 6.48 KB

🎯 ScriptHub

English | 繁體中文 | 简体中文

跨平台命令腳本管理工具 — 高效儲存、組織和分享你的常用命令

Tauri React TypeScript License

ScriptHub Banner

✨ 功能特色

腳本管理

  • 📝 建立、編輯、刪除腳本,支援多步驟命令流程
  • 📋 一鍵複製單條命令或整個腳本
  • ⭐ 收藏常用腳本,快速存取
  • 🔍 即時搜尋標題、描述和命令內容
  • 🔀 拖曳排序腳本順序

分類頁面

分類與標籤

  • 📁 資料夾式類別管理,支援 34 種預設圖標及自訂圖標上傳
  • 🖼️ 圖標庫功能,上傳的圖標可跨類別重複使用
  • 🏷️ 彩色標籤系統,靈活分類和篩選
  • 🔀 拖曳排序類別順序
  • ⋮ 類別卡片右上角更多選單(編輯、刪除、更新訂閱)

訂閱與同步

  • 🔗 訂閱 GitHub 腳本庫,自動導入腳本
  • 🔄 一鍵同步更新訂閱內容
  • 📦 支援 ZIP 高效下載

資料管理

  • 💾 SQLite 本地資料庫儲存
  • 📤 導出為 JSON 備份或資料夾結構
  • 📥 從備份或外部資料夾導入
  • 🗂️ 單一類別導出功能

設定頁面

介面與體驗

  • 🌓 淺色 / 深色 / 跟隨系統主題
  • 📱 卡片網格與列表視圖切換
  • 🌐 繁體中文 / English 雙語支援
  • 🖥️ 動態側邊欄,根據當前頁面切換功能
  • 🖱️ 右鍵選單支援(類別、腳本卡片)
  • 🚀 開機自動啟動(可選)
  • 🔽 關閉時最小化到系統托盤

🚀 開始使用

下載安裝

前往 Releases 頁面下載最新版本:

  • Windows: .msi 安裝包 或 .exe 安裝程式

從原始碼建置

系統需求

安裝與開發

# 克隆專案
git clone https://github.com/Wing9897/ScriptHub.git
cd ScriptHub

# 安裝依賴
npm install

# 開發模式(含 Tauri 桌面視窗)
npm run tauri dev

# 僅前端開發(瀏覽器預覽)
npm run dev

打包發布

npm run tauri build

產出位於 src-tauri/target/release/bundle/

🎨 使用方式

建立腳本

  1. 點擊右上角「新增腳本」
  2. 輸入標題、描述,選擇平台
  3. 逐行輸入命令,可為每步添加說明
  4. 選擇類別和標籤
  5. 點擊「建立腳本」

訂閱 GitHub 腳本庫

  1. 點擊側邊欄「訂閱」按鈕
  2. 輸入 GitHub 倉庫 URL(支援子目錄路徑)
  3. 掃描並選擇要導入的腳本
  4. 之後可透過類別卡片的 ⋮ 選單一鍵更新

📦 資料格式

ScriptHub 使用 V2 統一格式進行匯入/匯出,結構如下:

scripthub-export-2025-02-08/
├── scripthub.json              # 根 manifest
├── global/
│   ├── tags.json               # 全域標籤
│   ├── variables.json          # 全域變數
│   └── custom_icons.json       # 自訂圖標庫
├── categories/
│   └── [category-name]/
│       ├── category.json       # 類別元數據 + 腳本列表
│       ├── icon.png            # 自訂圖標(如有)
│       └── scripts/
│           ├── script-a.sh
│           └── script-b.ps1
└── uncategorized/
    ├── category.json
    └── scripts/

scripthub.json

{
  "manifest_version": "2.0",
  "exported_at": "2025-02-08T12:00:00.000Z",
  "app_version": "1.0.0",
  "stats": {
    "categories": 3,
    "scripts": 15,
    "tags": 5,
    "variables": 0
  }
}

category.json

{
  "id": "uuid",
  "name": "My Scripts",
  "description": "常用部署腳本",
  "icon": "terminal",
  "customIcon": "icon.png",
  "order": 0,
  "createdAt": "2025-01-01T00:00:00.000Z",
  "isSubscription": false,
  "sourceUrl": null,
  "scripts": [
    {
      "id": "uuid",
      "title": "Deploy",
      "description": "部署到生產環境",
      "file": "scripts/deploy.sh",
      "platform": "linux",
      "tags": ["tag-id-1"],
      "variables": [],
      "isFavorite": true,
      "order": 0,
      "createdAt": "2025-01-01T00:00:00.000Z",
      "updatedAt": "2025-01-01T00:00:00.000Z"
    }
  ]
}

支援的平台值:crosswindowslinuxmacos

📁 專案結構

ScriptHub/
├── src/                    # React 前端
│   ├── components/         # UI 組件
│   │   ├── layout/         # 佈局(Sidebar, TopBar, MainLayout)
│   │   ├── category/       # 類別管理
│   │   ├── script/         # 腳本相關
│   │   ├── tag/            # 標籤管理
│   │   ├── import/         # 檔案導入
│   │   ├── subscription/   # 訂閱功能
│   │   ├── settings/       # 設定頁面
│   │   └── ui/             # 通用 UI 組件
│   ├── stores/             # Zustand 狀態管理
│   ├── services/           # 資料庫、GitHub、檔案服務
│   ├── hooks/              # 自定義 Hooks
│   ├── i18n/               # 國際化(zh-HK, en-US)
│   ├── types/              # TypeScript 類型定義
│   └── utils/              # 工具函數
├── src-tauri/              # Tauri Rust 後端
│   ├── src/                # Rust 源碼
│   ├── capabilities/       # 權限配置
│   └── tauri.conf.json     # Tauri 配置
├── public/                 # 靜態資源
└── package.json

🛠️ 技術棧

技術 用途
Tauri 2 桌面應用框架
React 18 UI 框架
TypeScript 5 類型安全
Zustand 5 狀態管理
Tailwind CSS 3 CSS 框架
Vite 6 構建工具
SQLite 本地資料庫
i18next 國際化
Lucide React 圖標庫

📄 授權

MIT License