桌面 GUI 外链修复 + 主题顺序调整(含结构扁平化进行中的工作区基线)

- 集成 tauri-plugin-opener:Cargo/lib.rs/capabilities/npm 四处接线,新增 src/openExternal.ts(桌面走 opener,浏览器回退 window.open,相对路径绝对化)
- 关于页 4 个链接、活动栏官网菜单、代理错误横幅 2 处健康检查链接全部改走 openExternal,桌面端可正常跳转
- 设置→外观 主题顺序调整为 深色/浅色/跟随系统
- release 二进制重编并验证(浏览器实测关于页链接可开文档页)
- 附带工作区中未提交的扁平化重构现状(另一会话进行中)
- homepage 落地页与文档终检通过(8787 / 与 /docs 双 200)
This commit is contained in:
logan committed 2026-10-16 03:03:36 +08:00
1 parent 6452026fd6
commit 2bb4ef7a95
299 files changed
+6059 -3322

No files matched your search

+7 -39
View File
@@ -4,19 +4,8 @@
# .noindex:避免 Spotlight 把临时 Dock 壳当成可打开的历史 App
GUI_APP_DIR="$SCRIPT_DIR/src-tauri/target/gui-app.noindex"
GUI_APP="$GUI_APP_DIR/OpsxAPI.app"
# 源码在 apps/desktop/src-tauri;编译产物可能在根 src-tauri/target(历史路径)
ICONS_DIR="$SCRIPT_DIR/apps/desktop/src-tauri/icons"
[ -f "$ICONS_DIR/icon.icns" ] || ICONS_DIR="$SCRIPT_DIR/src-tauri/icons"
REL_APP="$SCRIPT_DIR/apps/desktop/src-tauri/target/release/bundle/macos/OpsxAPI.app"
[ -d "$REL_APP" ] || REL_APP="$SCRIPT_DIR/src-tauri/target/release/bundle/macos/OpsxAPI.app"
DBG_APP="$SCRIPT_DIR/apps/desktop/src-tauri/target/debug/bundle/macos/OpsxAPI.app"
[ -d "$DBG_APP" ] || DBG_APP="$SCRIPT_DIR/src-tauri/target/debug/bundle/macos/OpsxAPI.app"
REL_BIN="$SCRIPT_DIR/apps/desktop/src-tauri/target/release/OpsxAPI"
[ -x "$REL_BIN" ] || REL_BIN="$SCRIPT_DIR/src-tauri/target/release/OpsxAPI"
DBG_BIN_A="$SCRIPT_DIR/apps/desktop/src-tauri/target/debug/OpsxAPI"
[ -x "$DBG_BIN_A" ] || DBG_BIN_A="$SCRIPT_DIR/src-tauri/target/debug/OpsxAPI"
DBG_BIN_B="$SCRIPT_DIR/apps/desktop/src-tauri/target/debug/opsxapi"
[ -x "$DBG_BIN_B" ] || DBG_BIN_B="$SCRIPT_DIR/src-tauri/target/debug/opsxapi"
ICONS_DIR="$SCRIPT_DIR/src-tauri/icons"
DBG_BIN_A="$SCRIPT_DIR/src-tauri/target/debug/OpsxAPI"
GUI_DEV_NEEDS_VITE=0
_gui_write_plist() {
@@ -55,28 +44,10 @@ ensure_gui_dev_app() {
return 1
fi
mkdir -p "$GUI_APP_DIR"
if [ -d "$DBG_APP" ]; then
rm -rf "$GUI_APP"
cp -R "$DBG_APP" "$GUI_APP"
GUI_DEV_NEEDS_VITE=1
elif [ -x "$DBG_BIN_A" ]; then
rm -rf "$GUI_APP"
_gui_wrap_bin "$DBG_BIN_A"
GUI_DEV_NEEDS_VITE=1
elif [ -x "$DBG_BIN_B" ]; then
rm -rf "$GUI_APP"
_gui_wrap_bin "$DBG_BIN_B"
GUI_DEV_NEEDS_VITE=1
elif [ -d "$REL_APP" ]; then
rm -rf "$GUI_APP"
cp -R "$REL_APP" "$GUI_APP"
elif [ -x "$REL_BIN" ]; then
rm -rf "$GUI_APP"
_gui_wrap_bin "$REL_BIN"
else
error "没有可包装的桌面二进制。请先 ./run.sh gui 走一次 tauri 编译,或 npm run tauri -- build --no-bundle。"
return 1
fi
info "编译当前桌面源码..."
(cd "$SCRIPT_DIR" && cargo build --manifest-path src-tauri/Cargo.toml --bin OpsxAPI) || return 1
_gui_wrap_bin "$DBG_BIN_A"
GUI_DEV_NEEDS_VITE=1
mkdir -p "$GUI_APP/Contents/Resources"
cp "$icon" "$GUI_APP/Contents/Resources/icon.icns"
/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName OpsxAPI" "$GUI_APP/Contents/Info.plist" 2>/dev/null || true
@@ -94,14 +65,11 @@ ensure_gui_dev_app() {
kill_opsxapi_gui() {
stop_detached "$DESKTOP_LABEL"
pkill -f "$SCRIPT_DIR/src-tauri/target/debug/OpsxAPI" 2>/dev/null || true
pkill -f "$SCRIPT_DIR/apps/desktop/src-tauri/target/debug/OpsxAPI" 2>/dev/null || true
pkill -f "$SCRIPT_DIR/node_modules/.bin/tauri" 2>/dev/null || true
pkill -f "$SCRIPT_DIR/src-tauri/target/gui-app/OpsxAPI.app" 2>/dev/null || true
pkill -f "$GUI_APP" 2>/dev/null || true
pkill -x OpsxAPI 2>/dev/null || true
}
gui_is_running() {
pgrep -f "$GUI_APP/Contents/MacOS/" >/dev/null 2>&1 \
|| pgrep -x OpsxAPI >/dev/null 2>&1
pgrep -f "$GUI_APP/Contents/MacOS/" >/dev/null 2>&1
}