跳到主要内容

Aurisper 文档管理器

一款 macOS 原生应用,用于管理 Aurisper 内部知识库文档。通过可视化界面简化 Git 操作,让非技术人员也能轻松更新和发布文档。

功能特性

  • GitHub OAuth 登录 - 使用个人 GitHub 账号进行身份验证和文档同步
  • 一键更新 - 自动 clone/pull 远程仓库
  • 一键发布 - 自动 add/commit/push,commit message 包含操作者信息
  • 文档浏览 - 树形结构展示 docs/ 目录下的所有 Markdown 文件
  • 文档编辑 - 内置纯文本编辑器,支持快捷键保存
  • 文件上传 - 拖拽上传,自动识别文件类型并放到对应目录

系统要求

  • macOS 13.0 (Ventura) 或更高版本
  • Git(系统自带或通过 Homebrew 安装)
  • GitHub 账号(需要仓库访问权限)

安装使用

1. 获取应用

应用位于 build/Release/AurisperDocManager.app,双击即可运行。

或将其拖拽到 /Applications 文件夹进行安装。

2. 首次登录

┌─────────────────────────────────────────────────────────┐
│ │
│ 1. 启动应用 │
│ │ │
│ ▼ │
│ 2. GitHub OAuth 登录 │
│ (授权应用访问你的 GitHub 账号) │
│ │ │
│ ▼ │
│ 3. 进入主界面 │
│ │
└─────────────────────────────────────────────────────────┘

3. 日常使用

操作说明
更新点击工具栏「更新」按钮,拉取远程最新内容
编辑在左侧边栏选择文档,右侧编辑器中修改内容
保存⌘S 或点击「保存」按钮,保存到本地
发布点击「发布」按钮,输入提交说明,推送到远程
新建点击「新建」按钮,创建新的 Markdown 文档
上传点击「上传」按钮,拖拽或选择文件上传

整体架构

┌─────────────────────────────────────────────────────────────────────┐
│ Aurisper 文档管理器 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────────┐ │
│ │ Views │ │ Managers │ │ Models │ │
│ │ │ │ │ │ │ │
│ │ LoginView │───▶│ AuthManager │───▶│ GitHubUser │ │
│ │ MainView │ │ │ │ GitResult │ │
│ │ SidebarView │───▶│ GitManager │───▶│ Document │ │
│ │ EditorView │ │ │ │ AppConfig │ │
│ │ FileUpload │───▶│ DocManager │ │ │ │
│ │ │ │ │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────────────────┘ │
│ │ │ │
│ │ │ │
│ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 外部服务 │ │
│ │ │ │
│ │ ┌───────────────┐ ┌───────────────┐ │ │
│ │ │ GitHub │ │ 本地文件系统 │ │ │
│ │ │ OAuth │ │ │ │ │
│ │ │ API │ │ ~/aurisper-doc│ │ │
│ │ └───────────────┘ └───────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘

模块说明

模块文件职责
AuthManagerManagers/AuthManager.swift处理 GitHub OAuth 登录,管理用户凭证
GitManagerManagers/GitManager.swift封装 Git 命令(clone/pull/push),处理仓库同步
DocumentManagerManagers/DocumentManager.swift管理文档列表、读写文件、处理上传
LoginViewViews/LoginView.swiftGitHub 登录界面
MainViewViews/MainView.swift主界面,包含工具栏和布局
SidebarViewViews/SidebarView.swift左侧文档树
EditorViewViews/EditorView.swift右侧文本编辑器
FileUploadViewViews/FileUploadView.swift文件上传弹窗

工作流程

文档更新流程

┌──────────────────────────────────────────────────────────────────┐
│ 更新流程 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 用户点击「更新」 │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 检查本地仓库 │ │
│ │ ~/aurisper-doc │ │
│ └────────┬────────┘ │
│ │ │
│ ┌─────┴─────┐ │
│ │ │ │
│ 不存在 存在 │
│ │ │ │
│ ▼ ▼ │
│ git clone git pull │
│ │ │ │
│ └─────┬─────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 刷新文档列表 │ │
│ └─────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘

文档发布流程

┌──────────────────────────────────────────────────────────────────┐
│ 发布流程 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 用户点击「发布」 │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 弹出提交说明窗口 │ │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 保存当前文档 │ (如有未保存的修改) │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ git add -A │ 添加所有更改 │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ git commit │ 提交说明 + 操作者信息 │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ git push │ 推送到 GitHub │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ Cloudflare 自动 │ 约 2-3 分钟后网站更新 │
│ │ 构建部署 │ │
│ └─────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘

文件上传流程

┌──────────────────────────────────────────────────────────────────┐
│ 上传流程 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 用户拖拽/选择文件 │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 识别文件类型 │ │
│ └────────┬────────┘ │
│ │ │
│ ┌─────┼─────┬─────────┬─────────┐ │
│ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ │
│ .md .pdf .html .png/.jpg 其他 │
│ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ │
│ docs/ static/ static/ static/ 拒绝 │
│ pdf/ html/ img/ │
│ │ │ │ │ │
│ └─────┴─────┴─────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 复制文件到目标 │ │
│ │ 目录 │ │
│ └────────┬────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ 显示上传结果 │ 包含引用路径提示 │
│ └─────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────┘

安全说明

权限控制

本应用的安全性由 GitHub 仓库权限 保证:

操作权限检查
git clone/pullGitHub 检查用户是否有仓库读取权限
git pushGitHub 检查用户是否有仓库写入权限

如何管理用户权限

  1. 访问 https://github.com/Aurisper/aurisper-doc/settings/access
  2. 点击 Add people 添加团队成员
  3. 选择权限级别:
    • Read - 只能查看和下载文档
    • Write - 可以编辑和发布文档
    • Admin - 完全控制权限

目录结构

AurisperDocManager/
├── AurisperDocManager.xcodeproj # Xcode 项目文件
├── build/
│ └── Release/
│ └── AurisperDocManager.app # 编译后的应用
└── AurisperDocManager/
├── AurisperDocManagerApp.swift # 应用入口
├── ContentView.swift # 主视图路由
├── Info.plist # URL Scheme 配置
├── AurisperDocManager.entitlements
├── Assets.xcassets/ # 资源文件
├── Models/
│ └── Models.swift # 数据模型和配置
├── Managers/
│ ├── AuthManager.swift # GitHub OAuth 认证
│ ├── GitManager.swift # Git 操作
│ └── DocumentManager.swift # 文档管理
└── Views/
├── LoginView.swift # 登录界面
├── MainView.swift # 主界面
├── SidebarView.swift # 侧边栏
├── EditorView.swift # 编辑器
└── FileUploadView.swift # 文件上传

常见问题

Q: 点击「更新」后提示失败?

A: 检查以下几点:

  1. 确保已完成 GitHub OAuth 登录
  2. 确保网络连接正常
  3. 检查 GitHub 账号是否有仓库访问权限

Q: 发布后网站没有更新?

A: Cloudflare Pages 构建部署需要 2-3 分钟,请稍等后刷新网站。

Q: 如何切换 GitHub 账号?

A: 点击右上角用户菜单,选择「退出登录」,然后重新登录。

Q: 提示没有仓库权限?

A: 请联系管理员在 GitHub 仓库设置中添加你的账号为 Collaborator。


技术栈

  • SwiftUI - 用户界面框架
  • ASWebAuthenticationSession - GitHub OAuth 认证
  • Process - 执行 Git 命令
  • Keychain - 安全存储凭证

版本历史

  • v1.1 (2026-01-05) - 简化登录流程

    • 移除 Zero Trust 登录,直接使用 GitHub OAuth
    • 简化用户界面
  • v1.0 (2026-01-05) - 初始版本

    • GitHub OAuth 登录
    • 文档浏览、编辑、发布
    • 文件上传自动分类

许可证

Copyright © 2026 Aurisper. All rights reserved.