iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
A scripts writer & reader
翻訳待ち
Loading the full README.
Read the full README ↗write_project)最後更新:2026-11-10(v0.7.4)
本專案是一個台本創作、發布與公開閱讀平台。正式版為 v0.7.4;公開網站與工作室分別由兩個前端提供:
src/:Vite 工作室/editor。負責創作、發布工作室、後台管理、匯入匯出與編輯器預覽。apps/public/:Next.js 公開站。負責 SEO、SSR/ISR、公開首頁、作者/組織/系列/標籤頁與公開閱讀器。共享的解析、渲染、公開 UI、媒體裁切與 PDF 匯出能力放在 packages/*,避免 Vite 與 Next 重複實作。
| 層 | 技術 |
|---|---|
| 工作室前端 | Vite, React 19, TypeScript, React Router |
| 公開站 | Next.js 16 App Router, React 19, TypeScript, SSR/ISR |
| 共享套件 | npm workspaces under packages/* |
| 後端 | FastAPI, SQLAlchemy |
| DB | PostgreSQL(SQLite 僅用於遷移/除錯) |
| 測試 | Vitest, Playwright, Pytest |
| 樣式 | Tailwind CSS, CSS variables, shared marker theme tokens |
apps/public/ Next.js public frontend
app/ public routes, server data loading, metadata
components/ public app adapters and shell actions
lib/ API/BFF adapters, SEO models, public projections
src/ Vite studio/editor frontend
components/ editor, dashboard, reader preview, metadata UI
hooks/ studio/editor state and API hooks
lib/ Vite app adapters and compatibility shims
packages/
script-engine/ marker config normalization, parser, AST, render model
script-reader-renderer/ React renderers and marker-driven presentation layout
script-reader-ui/ reader state, toolbar primitives, reading preferences
script-theme/ shared marker color CSS tokens
public-ui/ router-neutral public domain models and UI components
reader-export/ PDF/print export, metadata projection, print HTML
media-crop/ media crop encode/decode/style helpers
browser-download/ browser download primitives
server/ FastAPI backend
docs/ architecture, SEO, reader, security, migration notes
scripts/ development and maintenance scripts
| Route | 用途 | Revalidate |
|---|---|---|
/ | 首頁 gallery, hero banner, scripts/authors/orgs views | 5 minutes |
/read/[id] | 公開閱讀器 | 24 hours |
/author/[id] | 作者頁 | 1 hour |
/org/[id] | 組織頁 | 1 hour |
/author/external/[name] | 外部作者頁 | 依公開資料快取 |
/org/external/[name] | 外部組織頁 | 依公開資料快取 |
/series/[name] | 系列頁 | 1 hour |
/tag/[name] | 標籤集合頁 | 1 hour |
/authors, /audio-works, /demos, /resources | 公開名錄 | 依頁面資料快取 |
/resources/[id] | 製作資源詳情與參與作品 | 依公開資料快取 |
/about, /help, /license, /privacy, /terms | 靜態內容頁 | static |
Public app BFF routes live under apps/public/app/api/* and proxy backend data through same-origin APIs.
工作室 Demo 管理頁使用 /studio/demos;公開 /demos 由 Next.js 提供。
apps/public owns public routes, metadata, SSR/ISR, BFF route handlers, and public URL behavior.src owns studio/editor workflows. Vite public-looking modules that remain are editor preview code or compatibility facades.packages/script-engine is the single source for parser/AST/render model logic.packages/script-reader-renderer owns canonical script rendering and marker-driven presentation layout. Legacy v2 names are compatibility aliases.packages/public-ui owns router-neutral public models and UI components. It exports a client barrel (index.ts) and a server-safe barrel (server.ts).packages/reader-export owns PDF/print export and public metadata projection for exported documents.See docs/architecture/frontend-boundaries.md for the full boundary rules.
npm ci
npm run dev
npm run dev -w apps/public
cd server
pip install -r requirements.txt
uvicorn main:app --reload --port 1091
npm run typecheck # root TypeScript check
npm run test # Vitest multi-project suite
npm run build # Vite studio build
npm run build:public # Next public build
npm run test:e2e # Playwright E2E
後端測試請在 server/ 內使用 Pytest。
docker-compose.prod.yml 使用 repo root 作為 build context。apps/public/Dockerfile 建置 Next public app,並納入 workspace packages。nginx.conf。main 是目前的維護與發布分支。v0.7.4 已發布於 正式網站;正式版為 v0-7-4-r14,唯一保留的回滾版為 v0-7-4-r13。回滾指令:python3 scripts/site-release.py rollback --tag v0-7-4-r14。VITE_API_URL,未設時預設 /api。BACKEND_API_URL,public client 透過 same-origin /api/* BFF 存取。NEXT_PUBLIC_BASE_URL。FEEDBACK_NOTIFICATION_EMAIL:公開頁回報/上架申請的通知收件人,預設為 [email protected]。SMTP_HOST / SMTP_PORT / SMTP_USERNAME / SMTP_PASSWORD:寄信服務設定;Gmail 請使用應用程式密碼,不要使用一般登入密碼。SMTP_FROM:寄件地址,未設定時使用 SMTP_USERNAME。SMTP_USE_TLS / SMTP_USE_SSL:SMTP 加密方式,預設使用 STARTTLS。Authorization: Bearer <Firebase token>。X-User-ID,詳見後端認證文件。apps/public。