diff --git a/.github/workflows/github-pages.yml b/.github/workflows/github-pages.yml
new file mode 100644
index 0000000..cd6ed80
--- /dev/null
+++ b/.github/workflows/github-pages.yml
@@ -0,0 +1,52 @@
+name: GitHub Pages
+
+on:
+ push:
+ tags: ["v*"]
+ workflow_dispatch:
+
+permissions:
+ contents: read
+ pages: write
+ id-token: write
+
+concurrency:
+ group: pages
+ cancel-in-progress: false
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - uses: oven-sh/setup-bun@v2
+
+ - name: Install dependencies
+ working-directory: web
+ run: bun install --frozen-lockfile
+
+ - name: Build
+ working-directory: web
+ env:
+ VITE_BASE: /${{ github.event.repository.name }}/
+ run: bun run build
+
+ - name: Add SPA fallback
+ run: cp web/dist/index.html web/dist/404.html
+
+ - uses: actions/configure-pages@v5
+
+ - uses: actions/upload-pages-artifact@v3
+ with:
+ path: web/dist
+
+ deploy:
+ needs: build
+ runs-on: ubuntu-latest
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ steps:
+ - id: deployment
+ uses: actions/deploy-pages@v4
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fdb6478..4818574 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,10 +2,11 @@
## Unreleased
-+ [新增] 图片切图支持等分线直接拖拽调整,并可新增、删除和重置横向 / 纵向切图线。
+ [新增] 新增Codex App插件支持。
+ [新增] 配置与用户偏好新增独立页面和 Codex 连接配置 Tab。
+ [修复] 修复生图工作台重试成功结果刷新后丢失的问题。
++ [新增] 新增GitHub Pages 前端静态站点发布 workflow。
++ [新增] 图片切图支持等分线直接拖拽调整,并可新增、删除和重置横向 / 纵向切图线。
## v0.5.0 - 2026-07-05
diff --git a/README.md b/README.md
index b74666c..07e2c50 100644
--- a/README.md
+++ b/README.md
@@ -8,12 +8,20 @@
-
+
+ 快速开始 · 功能介绍 · Render 部署 · Docker 部署 · 画布节点操作手册 · 画布快捷键 · 贡献者协议 · 漏洞提交 · 待办事项 · 本地 Canvas Agent · Codex app 插件 +
+ 无限画布是一款面向图片创作的开源工作台。它把画布编排、AI 图片生成、参考图编辑、对话助手、提示词库和素材沉淀放在同一个界面里,适合用来探索视觉方案并连续迭代图片结果。 > [!CAUTION] @@ -34,16 +42,12 @@ 如果你在为担心没有合适的生图API来发愁,可以查看该免费生图项目:[chatgpt2api](https://github.com/basketikun/chatgpt2api) -## 技术栈 - -- 前端:Vite、React、React Router、TypeScript、Tailwind CSS、Ant Design、Zustand、TanStack Query。 -- 前端:提示词库、WebDAV 和 AI 接口都由浏览器前端直连。 -- 部署:静态站点托管或 Docker。 - ## 快速开始 AI API Key、Base URL、画布、素材和生成记录默认保存在浏览器本地。 +### 本地开发 + ```bash git clone git@github.com:basketikun/infinite-canvas.git cd infinite-canvas @@ -52,11 +56,12 @@ bun install bun run dev ``` -Docker 运行: +### Docker 运行 ```bash -docker build -t infinite-canvas . -docker run --rm -p 3000:3000 infinite-canvas +git clone git@github.com:basketikun/infinite-canvas.git +cd infinite-canvas +docker compose up -d ``` 运行后默认端口3000,可访问 `http://localhost:3000`。 @@ -95,19 +100,11 @@ https://canvas.best?apiKey={key}&baseUrl={address} -## 文档 +## 联系方式 -- [快速开始](docs/content/docs/overview/quick-start.mdx) -- [功能介绍](docs/content/docs/overview/features.mdx) -- [Render 部署](docs/content/docs/overview/render.mdx) -- [Docker 部署](docs/content/docs/overview/docker.mdx) -- [画布节点操作手册](docs/content/docs/canvas/canvas-node-manual.mdx) -- [画布快捷键](docs/content/docs/canvas/canvas-shortcuts.mdx) -- [贡献者协议](CLA.md) -- [漏洞提交](SECURITY.md) -- [待办事项](docs/content/docs/progress/todo.mdx) -- [本地 Canvas Agent](canvas-agent/README.md) -- [Codex app 插件](plugins/infinite-canvas) +项目定制二次开发需求 / 生图 API 需求可联系。 + +邮箱:1844025705@qq.com · QQ:1844025705 ## 赞助支持 diff --git a/docs/content/docs/progress/pending-test.mdx b/docs/content/docs/progress/pending-test.mdx index 293804a..d5b16ec 100644 --- a/docs/content/docs/progress/pending-test.mdx +++ b/docs/content/docs/progress/pending-test.mdx @@ -5,6 +5,7 @@ description: 当前版本已实现但仍需人工验证的变更项 # 待测试 +- GitHub Pages:新增版本 tag 触发的前端静态站点自动发布 workflow,需在仓库 Pages 设置中选择 GitHub Actions 并验证路由刷新回退。 - 画布图片切图:行数 / 列数会生成可直接拖拽的等分切图线,并支持新增横向 / 纵向线、删除单条线、重置切图线和切片数量预览。 - Codex App 插件文档:新增插件安装教程,区分 AI 自动安装、手动安装和本仓库开发调试安装;同步优化插件 README 与技能说明。 - 顶部导航:缩小桌面顶部导航栏高度,导航项下划线和内容垂直对齐需确认。 diff --git a/web/vite.config.ts b/web/vite.config.ts index 9327604..a38d304 100644 --- a/web/vite.config.ts +++ b/web/vite.config.ts @@ -11,6 +11,7 @@ const localVersion = readFileSync(resolve(webDir, "../VERSION"), "utf8").trim() const localChangelog = readFileSync(resolve(webDir, "../CHANGELOG.md"), "utf8"); export default defineConfig({ + base: process.env.VITE_BASE || "/", plugins: [react()], resolve: { alias: {