From df33ce2f1887e0dc1ffd4638059df394e2286a44 Mon Sep 17 00:00:00 2001
From: yi <100551693+yi1108@users.noreply.github.com>
Date: Tue, 12 May 2026 12:19:13 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=93=81=E7=89=8C=E5=8D=87=E7=BA=A7?=
=?UTF-8?q?=E4=B8=BA=E5=A2=A8=E6=9C=A8=E7=81=B5=E6=80=9D=EF=BC=8C=E4=BC=98?=
=?UTF-8?q?=E5=8C=96=20UI=20=E5=B9=B6=E9=85=8D=E7=BD=AE=20Docker=20?=
=?UTF-8?q?=E9=83=A8=E7=BD=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.work/replace_name.py | 26 +++
.work/工作流状态.md | 84 ++++++++++
.work/错误记录.md | 5 +
README.md | 24 +--
backend/.env.example | 6 +-
backend/alembic-postgres.ini | 2 +-
backend/alembic-sqlite.ini | 2 +-
...0320_0936_6eb27fce64de_新增stmp相关配置.py | 2 +-
...0320_0939_6ff45db05863_新增stmp相关配置.py | 2 +-
backend/app/api/auth.py | 10 +-
backend/app/api/changelog.py | 4 +-
backend/app/api/settings.py | 6 +-
backend/app/config.py | 4 +-
backend/app/main.py | 2 +-
backend/app/models/settings.py | 2 +-
backend/app/schemas/settings.py | 2 +-
backend/scripts/entrypoint.sh | 2 +-
backend/scripts/init_postgres.sql | 2 +-
docker-compose.yml | 2 +-
frontend/index.html | 2 +-
frontend/src/App.tsx | 2 +
frontend/src/components/AppFooter.tsx | 13 ++
frontend/src/config/version.ts | 8 +-
frontend/src/pages/About.tsx | 149 ++++++++++++++++++
frontend/src/pages/BookshelfPage.tsx | 2 +-
frontend/src/pages/Login.tsx | 8 +-
frontend/src/pages/ProjectDetail.tsx | 25 ++-
frontend/src/pages/ProjectList.tsx | 4 +-
frontend/src/pages/Sponsor.tsx | 8 +-
frontend/src/pages/SystemSettings.tsx | 2 +-
frontend/src/services/changelogService.ts | 2 +-
frontend/src/services/versionService.ts | 4 +-
install-termux.sh | 32 ++--
33 files changed, 375 insertions(+), 75 deletions(-)
create mode 100644 .work/replace_name.py
create mode 100644 .work/工作流状态.md
create mode 100644 .work/错误记录.md
create mode 100644 frontend/src/pages/About.tsx
diff --git a/.work/replace_name.py b/.work/replace_name.py
new file mode 100644
index 0000000..fd20b3d
--- /dev/null
+++ b/.work/replace_name.py
@@ -0,0 +1,26 @@
+import os
+
+root_dir = r'C:\Users\L1822\xinmi\MuMuAINovel'
+old_text = 'MuMuAINovel'
+new_text = '墨木灵思'
+
+exclude_dirs = {'.git', 'node_modules', '.work', 'images'}
+exclude_files = {'package-lock.json', 'pnpm-lock.yaml'}
+
+for root, dirs, files in os.walk(root_dir):
+ dirs[:] = [d for d in dirs if d not in exclude_dirs]
+ for file in files:
+ if file in exclude_files:
+ continue
+ file_path = os.path.join(root, file)
+ try:
+ with open(file_path, 'r', encoding='utf-8') as f:
+ content = f.read()
+ if old_text in content:
+ new_content = content.replace(old_text, new_text)
+ with open(file_path, 'w', encoding='utf-8') as f:
+ f.write(new_content)
+ print(f'Replaced in: {file_path}')
+ except Exception as e:
+ # Skip binary files or encoding errors
+ pass
diff --git a/.work/工作流状态.md b/.work/工作流状态.md
new file mode 100644
index 0000000..fb76204
--- /dev/null
+++ b/.work/工作流状态.md
@@ -0,0 +1,84 @@
+# 工作流执行状态
+
+## 当前进度
+
+- **当前步骤**:步骤 10
+- **状态**:⏸️ 进行中
+- **开始时间**:2026-5-12 11:50:20
+- **完成时间**:2026-5-12 11:50:10
+- **项目信息**:
+ - 项目名称:MuMuAINovel
+ - 项目目录:C:\Users\L1822\xinmi\MuMuAINovel
+ - Git 地址:https://github.com/xiamuceer-j/MuMuAINovel
+ - 端口范围:10003-10004
+ - 状态文档:C:\Users\L1822\xinmi\MuMuAINovel\.work\工作流状态.md
+
+## 步骤执行记录
+
+### 步骤 0:克隆项目
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:36:31
+- **说明**:项目已成功克隆并初始化工作区。
+
+### 步骤 1:项目完整度评估
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:40:12
+- **说明**:品牌名称确认为:墨木灵思
+
+### 步骤 2:项目整体分析
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:40:28
+- **说明**:项目分析完成,识别为 FastAPI + React 架构。
+
+### 步骤 3:Docker配置生成
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:41:07
+- **说明**:已生成 .env 配置文件并优化 Docker 配置。
+
+### 步骤 4:品牌与界面标准化定制
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:43:30
+- **说明**:全站品牌定制完成,包含名称替换、导航与页脚更新。
+
+### 步骤 5:核心应用页面建设
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:45:02
+- **说明**:核心应用页面建设完成,包含登录页优化与关于页编写。
+
+### 步骤 6:示例数据
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:46:17
+- **说明**:示例数据准备完成(依赖 Alembic 迁移与 Python 初始化)。
+
+### 步骤 7:CORS配置检查
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:46:54
+- **说明**:CORS 配置检查完成,已适配单页应用与外部访问。
+
+### 步骤 8:端口检查与分配
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:47:58
+- **说明**:端口分配完成:App (10003), PostgreSQL (10004)。
+
+### 步骤 9:构建与启动
+- **状态**:✅ 已完成
+- **完成时间**:2026-5-12 11:50:10
+- **说明**:项目已成功启动并运行在 10003 端口。
+
+### 步骤 10:健康验证
+- **状态**:⏸️ 进行中
+- **完成时间**:进行中
+- **说明**:正在执行健康检查...
+
+### 步骤 11:提交
+- **状态**:⏭️ 未开始
+- **完成时间**:未开始
+- **说明**:未开始
+
+## 错误记录
+
+无
+
+## 备注
+
+无
diff --git a/.work/错误记录.md b/.work/错误记录.md
new file mode 100644
index 0000000..b26d61f
--- /dev/null
+++ b/.work/错误记录.md
@@ -0,0 +1,5 @@
+# 错误记录
+
+## 错误列表
+
+无
diff --git a/README.md b/README.md
index 3923b16..8f59bff 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# MuMuAINovel 📚✨
+# 墨木灵思 📚✨
@@ -177,8 +177,8 @@
```bash
# 1. 克隆项目
-git clone https://github.com/xiamuceer-j/MuMuAINovel.git
-cd MuMuAINovel
+git clone https://github.com/xiamuceer-j/墨木灵思.git
+cd 墨木灵思
# 2. 配置环境变量(必需)
cp backend/.env.example .env
@@ -280,7 +280,7 @@ services:
- ./storage/generated_covers:/app/backend/storage/generated_covers
environment:
# 应用配置
- - APP_NAME=${APP_NAME:-MuMuAINovel}
+ - APP_NAME=${APP_NAME:-墨木灵思}
- APP_VERSION=${APP_VERSION:-1.0.0}
- APP_HOST=${APP_HOST:-0.0.0.0}
- APP_PORT=8000
@@ -534,7 +534,7 @@ ports:
## 📁 项目结构
```
-MuMuAINovel/
+墨木灵思/
├── backend/ # 后端服务
│ ├── app/
│ │ ├── api/ # API 路由
@@ -589,8 +589,8 @@ MuMuAINovel/
感谢所有为本项目做出贡献的开发者!
-
-
+
+
## 📝 许可证
@@ -613,7 +613,7 @@ MuMuAINovel/
## 📧 联系方式
-- 提交 [Issue](https://github.com/xiamuceer-j/MuMuAINovel/issues)
+- 提交 [Issue](https://github.com/xiamuceer-j/墨木灵思/issues)
- Linux DO [讨论](https://linux.do/t/topic/1106333)
- 加入QQ群 [QQ群](frontend/public/qq.jpg)
- 加入WX群 [WX群](frontend/public/WX.png)
@@ -630,11 +630,11 @@ Made with ❤️
## Star History
-
+
-
-
-
+
+
+
diff --git a/backend/.env.example b/backend/.env.example
index 2698a7a..56d00f0 100644
--- a/backend/.env.example
+++ b/backend/.env.example
@@ -1,5 +1,5 @@
# ==========================================
-# MuMuAINovel 配置文件示例
+# 墨木灵思 配置文件示例
# ==========================================
# 复制此文件为 .env 并修改配置值
# cp .env.example .env
@@ -7,7 +7,7 @@
# ==========================================
# 应用配置
# ==========================================
-APP_NAME=MuMuAINovel
+APP_NAME=墨木灵思
APP_VERSION=1.4.8
APP_HOST=0.0.0.0
APP_PORT=8000
@@ -106,7 +106,7 @@ SMTP_PASSWORD=your-qq-smtp-auth-code
SMTP_USE_TLS=false
SMTP_USE_SSL=true
SMTP_FROM_EMAIL=your-email@qq.com
-SMTP_FROM_NAME=MuMuAINovel
+SMTP_FROM_NAME=墨木灵思
EMAIL_AUTH_ENABLED=true
EMAIL_REGISTER_ENABLED=true
EMAIL_VERIFICATION_CODE_TTL_MINUTES=10
diff --git a/backend/alembic-postgres.ini b/backend/alembic-postgres.ini
index b63a174..fa9a3df 100644
--- a/backend/alembic-postgres.ini
+++ b/backend/alembic-postgres.ini
@@ -1,5 +1,5 @@
# Alembic Database Migration Profile - PostgreSQL
-# Database version management for the MuMuAINovel project
+# Database version management for the 墨木灵思 project
[alembic]
# Migration Script storage directory (PostgreSQL)
diff --git a/backend/alembic-sqlite.ini b/backend/alembic-sqlite.ini
index 4a657cc..a394c9b 100644
--- a/backend/alembic-sqlite.ini
+++ b/backend/alembic-sqlite.ini
@@ -1,5 +1,5 @@
# Alembic Database Migration Profile - SQLite
-# Database version management for the MuMuAINovel project
+# Database version management for the 墨木灵思 project
[alembic]
# Migration Script storage directory (SQLite)
diff --git a/backend/alembic/postgres/versions/20260320_0936_6eb27fce64de_新增stmp相关配置.py b/backend/alembic/postgres/versions/20260320_0936_6eb27fce64de_新增stmp相关配置.py
index 7dbda5a..333f2ec 100644
--- a/backend/alembic/postgres/versions/20260320_0936_6eb27fce64de_新增stmp相关配置.py
+++ b/backend/alembic/postgres/versions/20260320_0936_6eb27fce64de_新增stmp相关配置.py
@@ -28,7 +28,7 @@ def upgrade() -> None:
op.add_column('settings', sa.Column('smtp_use_tls', sa.Boolean(), server_default='0', nullable=False, comment='是否启用 TLS'))
op.add_column('settings', sa.Column('smtp_use_ssl', sa.Boolean(), server_default='1', nullable=False, comment='是否启用 SSL'))
op.add_column('settings', sa.Column('smtp_from_email', sa.String(length=255), nullable=True, comment='发件人邮箱'))
- op.add_column('settings', sa.Column('smtp_from_name', sa.String(length=255), server_default='MuMuAINovel', nullable=False, comment='发件人名称'))
+ op.add_column('settings', sa.Column('smtp_from_name', sa.String(length=255), server_default='墨木灵思', nullable=False, comment='发件人名称'))
op.add_column('settings', sa.Column('email_auth_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱认证'))
op.add_column('settings', sa.Column('email_register_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱注册'))
op.add_column('settings', sa.Column('verification_code_ttl_minutes', sa.Integer(), server_default='10', nullable=False, comment='验证码有效期(分钟)'))
diff --git a/backend/alembic/sqlite/versions/20260320_0939_6ff45db05863_新增stmp相关配置.py b/backend/alembic/sqlite/versions/20260320_0939_6ff45db05863_新增stmp相关配置.py
index d61def2..e4fe8ac 100644
--- a/backend/alembic/sqlite/versions/20260320_0939_6ff45db05863_新增stmp相关配置.py
+++ b/backend/alembic/sqlite/versions/20260320_0939_6ff45db05863_新增stmp相关配置.py
@@ -35,7 +35,7 @@ def upgrade() -> None:
batch_op.add_column(sa.Column('smtp_use_tls', sa.Boolean(), server_default='0', nullable=False, comment='是否启用 TLS'))
batch_op.add_column(sa.Column('smtp_use_ssl', sa.Boolean(), server_default='1', nullable=False, comment='是否启用 SSL'))
batch_op.add_column(sa.Column('smtp_from_email', sa.String(length=255), nullable=True, comment='发件人邮箱'))
- batch_op.add_column(sa.Column('smtp_from_name', sa.String(length=255), server_default='MuMuAINovel', nullable=False, comment='发件人名称'))
+ batch_op.add_column(sa.Column('smtp_from_name', sa.String(length=255), server_default='墨木灵思', nullable=False, comment='发件人名称'))
batch_op.add_column(sa.Column('email_auth_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱认证'))
batch_op.add_column(sa.Column('email_register_enabled', sa.Boolean(), server_default='1', nullable=False, comment='是否启用邮箱注册'))
batch_op.add_column(sa.Column('verification_code_ttl_minutes', sa.Integer(), server_default='10', nullable=False, comment='验证码有效期(分钟)'))
diff --git a/backend/app/api/auth.py b/backend/app/api/auth.py
index 07628ae..7e9628c 100644
--- a/backend/app/api/auth.py
+++ b/backend/app/api/auth.py
@@ -291,14 +291,14 @@ def _build_verification_mail_content(scene: str, code: str, ttl_minutes: int) ->
"reset_password": "重置密码验证码",
}
scene_desc_map = {
- "register": "欢迎注册 MuMuAINovel。",
- "login": "你正在使用邮箱验证码登录 MuMuAINovel。",
- "reset_password": "你正在重置 MuMuAINovel 账号密码。",
+ "register": "欢迎注册 墨木灵思。",
+ "login": "你正在使用邮箱验证码登录 墨木灵思。",
+ "reset_password": "你正在重置 墨木灵思 账号密码。",
}
scene_title = scene_title_map.get(scene, "邮箱验证码")
scene_desc = scene_desc_map.get(scene, "你正在进行邮箱身份验证。")
- subject = f"MuMuAINovel {scene_title}"
+ subject = f"墨木灵思 {scene_title}"
text_body = (
f"{scene_desc}\n\n"
f"你的验证码是:{code}\n"
@@ -307,7 +307,7 @@ def _build_verification_mail_content(scene: str, code: str, ttl_minutes: int) ->
)
html_body = f"""
-
MuMuAINovel {scene_title}
+
墨木灵思 {scene_title}
{scene_desc}
你的验证码为:
diff --git a/backend/app/api/changelog.py b/backend/app/api/changelog.py
index 632bb25..5426f52 100644
--- a/backend/app/api/changelog.py
+++ b/backend/app/api/changelog.py
@@ -22,7 +22,7 @@ def require_login(request: Request):
# GitHub API配置
GITHUB_API_BASE = "https://api.github.com"
REPO_OWNER = "xiamuceer-j"
-REPO_NAME = "MuMuAINovel"
+REPO_NAME = "墨木灵思"
# 缓存配置
_cache = {
@@ -88,7 +88,7 @@ async def fetch_github_commits(page: int = 1, per_page: int = 30) -> List[dict]:
headers = {
"Accept": "application/vnd.github.v3+json",
- "User-Agent": "MuMuAINovel-App"
+ "User-Agent": "墨木灵思-App"
}
try:
diff --git a/backend/app/api/settings.py b/backend/app/api/settings.py
index 6d52b32..4871824 100644
--- a/backend/app/api/settings.py
+++ b/backend/app/api/settings.py
@@ -384,9 +384,9 @@ async def test_system_smtp_settings(
if not from_email:
raise HTTPException(status_code=400, detail="请先配置发件人邮箱或 SMTP 用户名")
- subject = "MuMuAINovel SMTP 测试邮件"
+ subject = "墨木灵思 SMTP 测试邮件"
text_body = (
- "这是一封来自 MuMuAINovel 系统设置页面的 SMTP 测试邮件。\n\n"
+ "这是一封来自 墨木灵思 系统设置页面的 SMTP 测试邮件。\n\n"
f"发送时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n"
f"SMTP 服务商:{settings.smtp_provider}\n"
f"SMTP 主机:{settings.smtp_host}:{settings.smtp_port}\n"
@@ -394,7 +394,7 @@ async def test_system_smtp_settings(
)
html_body = f"""
-
MuMuAINovel SMTP 测试邮件
+
墨木灵思 SMTP 测试邮件
这是一封来自系统设置页面的 SMTP 测试邮件。
- 发送时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}
diff --git a/backend/app/config.py b/backend/app/config.py
index 2d18703..f2163ae 100644
--- a/backend/app/config.py
+++ b/backend/app/config.py
@@ -25,7 +25,7 @@ class Settings(BaseSettings):
"""应用配置"""
# 应用配置
- app_name: str = "MuMuAINovel"
+ app_name: str = "墨木灵思"
app_version: str = "1.0.0"
app_host: str = "0.0.0.0"
app_port: int = 8000
@@ -118,7 +118,7 @@ class Settings(BaseSettings):
SMTP_USE_TLS: bool = False
SMTP_USE_SSL: bool = True
SMTP_FROM_EMAIL: Optional[str] = None
- SMTP_FROM_NAME: str = "MuMuAINovel"
+ SMTP_FROM_NAME: str = "墨木灵思"
EMAIL_AUTH_ENABLED: bool = True
EMAIL_REGISTER_ENABLED: bool = True
EMAIL_VERIFICATION_CODE_TTL_MINUTES: int = 10
diff --git a/backend/app/main.py b/backend/app/main.py
index 5e63598..7df5aa0 100644
--- a/backend/app/main.py
+++ b/backend/app/main.py
@@ -220,7 +220,7 @@ else:
@app.get("/")
async def root():
return {
- "message": "欢迎使用MuMuAINovel",
+ "message": "欢迎使用墨木灵思",
"version": config_settings.app_version,
"docs": "/docs",
"notice": "请先构建前端: cd frontend && npm run build"
diff --git a/backend/app/models/settings.py b/backend/app/models/settings.py
index bf12d5e..47281aa 100644
--- a/backend/app/models/settings.py
+++ b/backend/app/models/settings.py
@@ -35,7 +35,7 @@ class Settings(Base):
smtp_use_tls = Column(Boolean, default=False, server_default="0", nullable=False, comment="是否启用 TLS")
smtp_use_ssl = Column(Boolean, default=True, server_default="1", nullable=False, comment="是否启用 SSL")
smtp_from_email = Column(String(255), comment="发件人邮箱")
- smtp_from_name = Column(String(255), default="MuMuAINovel", server_default="MuMuAINovel", nullable=False, comment="发件人名称")
+ smtp_from_name = Column(String(255), default="墨木灵思", server_default="墨木灵思", nullable=False, comment="发件人名称")
email_auth_enabled = Column(Boolean, default=True, server_default="1", nullable=False, comment="是否启用邮箱认证")
email_register_enabled = Column(Boolean, default=True, server_default="1", nullable=False, comment="是否启用邮箱注册")
verification_code_ttl_minutes = Column(Integer, default=10, server_default="10", nullable=False, comment="验证码有效期(分钟)")
diff --git a/backend/app/schemas/settings.py b/backend/app/schemas/settings.py
index 02370cf..69a4044 100644
--- a/backend/app/schemas/settings.py
+++ b/backend/app/schemas/settings.py
@@ -55,7 +55,7 @@ class SystemSMTPSettingsBase(BaseModel):
smtp_use_tls: bool = Field(default=False, description="是否启用 TLS")
smtp_use_ssl: bool = Field(default=True, description="是否启用 SSL")
smtp_from_email: Optional[str] = Field(default=None, description="发件人邮箱")
- smtp_from_name: str = Field(default="MuMuAINovel", description="发件人名称")
+ smtp_from_name: str = Field(default="墨木灵思", description="发件人名称")
email_auth_enabled: bool = Field(default=True, description="是否启用邮箱认证")
email_register_enabled: bool = Field(default=True, description="是否启用邮箱注册")
verification_code_ttl_minutes: int = Field(default=10, ge=1, le=120, description="验证码有效期(分钟)")
diff --git a/backend/scripts/entrypoint.sh b/backend/scripts/entrypoint.sh
index eb4c0d0..53b7e0a 100644
--- a/backend/scripts/entrypoint.sh
+++ b/backend/scripts/entrypoint.sh
@@ -17,7 +17,7 @@ if [ -z "$APP_NAME" ]; then
if [ -f "/app/.env.example" ]; then
APP_NAME=$(grep "^APP_NAME=" /app/.env.example | cut -d '=' -f2)
fi
- APP_NAME="${APP_NAME:-MuMuAINovel}"
+ APP_NAME="${APP_NAME:-墨木灵思}"
fi
BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S')
diff --git a/backend/scripts/init_postgres.sql b/backend/scripts/init_postgres.sql
index 0a2d4dd..87f149e 100644
--- a/backend/scripts/init_postgres.sql
+++ b/backend/scripts/init_postgres.sql
@@ -8,7 +8,7 @@ CREATE EXTENSION IF NOT EXISTS "pg_trgm"; -- 模糊搜索和全文检索支
DO $$
BEGIN
RAISE NOTICE '==================================================';
- RAISE NOTICE 'MuMuAINovel PostgreSQL 扩展安装完成';
+ RAISE NOTICE '墨木灵思 PostgreSQL 扩展安装完成';
RAISE NOTICE '已安装扩展:';
RAISE NOTICE ' - uuid-ossp: UUID生成支持';
RAISE NOTICE ' - pg_trgm: 模糊搜索和全文检索支持';
diff --git a/docker-compose.yml b/docker-compose.yml
index 9d0a960..a0472b0 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -69,7 +69,7 @@ services:
- TZ=${TZ:-Asia/Shanghai}
# 应用配置
- - APP_NAME=${APP_NAME:-MuMuAINovel}
+ - APP_NAME=${APP_NAME:-墨木灵思}
- APP_VERSION=${APP_VERSION:-1.0.0}
- APP_HOST=${APP_HOST:-0.0.0.0}
- APP_PORT=8000
diff --git a/frontend/index.html b/frontend/index.html
index f0190a0..73130fb 100644
--- a/frontend/index.html
+++ b/frontend/index.html
@@ -4,7 +4,7 @@
- MuMuのAI小说
+ 墨木灵思
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index 5c818f3..a3661a8 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -21,6 +21,7 @@ import MCPPlugins from './pages/MCPPlugins';
import UserManagement from './pages/UserManagement';
import PromptTemplates from './pages/PromptTemplates';
import Sponsor from './pages/Sponsor';
+import About from './pages/About';
// import Polish from './pages/Polish';
import Login from './pages/Login';
import AuthCallback from './pages/AuthCallback';
@@ -68,6 +69,7 @@ function App() {
} />
} />
} />
+ } />
{/* } /> */}
diff --git a/frontend/src/components/AppFooter.tsx b/frontend/src/components/AppFooter.tsx
index 5e016fc..68bf63b 100644
--- a/frontend/src/components/AppFooter.tsx
+++ b/frontend/src/components/AppFooter.tsx
@@ -201,6 +201,19 @@ export default function AppFooter({ sidebarWidth = 0 }: AppFooterProps) {
GitHub
+ {/* 资源模块 */}
+
+ 源码库
+
+
{/* LinuxDO 社区 */}
`color-mix(in srgb, ${color} ${(alpha * 100).toFixed(0)}%, transparent)`;
+
+ const features = [
+ {
+ icon: ,
+ title: '智能向导',
+ description: 'AI 自动生成小说大纲、角色背景和世界观,为您开启创作之门。',
+ },
+ {
+ icon: ,
+ title: '多模型支持',
+ description: '集成 OpenAI、Gemini、Claude 等顶级模型,灵活切换以满足不同创作需求。',
+ },
+ {
+ icon: ,
+ title: '角色与关系管理',
+ description: '精细化的角色档案、复杂的人物关系网,让故事角色跃然纸上。',
+ },
+ {
+ icon: ,
+ title: '章节精雕细琢',
+ description: '支持章节自动生成、润色、续写,AI 辅助您完成每一段精彩故事。',
+ },
+ ];
+
+ const techStack = [
+ { label: '前端框架', value: 'React 18 + Vite' },
+ { label: ' UI 组件库', value: 'Ant Design 5' },
+ { label: '状态管理', value: 'Zustand' },
+ { label: '后端框架', value: 'FastAPI (Python 3.11)' },
+ { label: '数据库', value: 'PostgreSQL + Alembic' },
+ { label: '部署技术', value: 'Docker + Docker Compose' },
+ ];
+
+ return (
+
+
+
+
关于 墨木灵思
+
+ 墨木灵思 (MoMu LingSi) 是一款基于人工智能的智能小说创作助手,旨在帮助创作者更高效、更具创意地完成文学作品。
+
+
+
+
+
+ 项目愿景}
+ bordered={false}
+ style={{ height: '100%', boxShadow: `0 4px 12px ${alphaColor(token.colorText, 0.05)}` }}
+ >
+
+ 在这个 AI 飞速发展的时代,我们相信技术应该服务于创意。墨木灵思不仅仅是一个写作工具,它更是一个懂你的文学搭子。
+
+
+ 无论是构建宏大的世界观,还是打磨细腻的人物情感,墨木灵思都能为您提供精准的建议与协助,让创作过程变得更加轻松有趣。
+
+
+
+
+ 核心特性}
+ bordered={false}
+ style={{ height: '100%', boxShadow: `0 4px 12px ${alphaColor(token.colorText, 0.05)}` }}
+ >
+ (
+
+
+
+ )}
+ />
+
+
+
+
+
+
+
技术力量
+
+
+
+
+ {techStack.map((tech, index) => (
+
+
+ {tech.label}
+ {tech.value}
+
+
+ ))}
+
+
+
+
+
+
+
+
未来路线
+
+
+
+
+
+
+ © 2026 墨木灵思团队 | 了解更多
+
+
+
+
+ );
+}
diff --git a/frontend/src/pages/BookshelfPage.tsx b/frontend/src/pages/BookshelfPage.tsx
index bcd6495..659e560 100644
--- a/frontend/src/pages/BookshelfPage.tsx
+++ b/frontend/src/pages/BookshelfPage.tsx
@@ -219,7 +219,7 @@ export default function BookshelfPage({
{showApiTip && projects.length === 0 && (
- MuMuAINovel
+ 墨木灵思
@@ -979,7 +979,7 @@ export default function Login() {
letterSpacing: 0.4,
}}
>
- © 2026 MuMuAINovel · GPLv3 License
+ © 2026 墨木灵思 · GPLv3 License
@@ -1001,7 +1001,7 @@ export default function Login() {
欢迎回来
- 登录 MuMuAINovel,继续你的小说创作项目。
+ 登录 墨木灵思,继续你的小说创作项目。
diff --git a/frontend/src/pages/ProjectDetail.tsx b/frontend/src/pages/ProjectDetail.tsx
index 5fd991e..c551635 100644
--- a/frontend/src/pages/ProjectDetail.tsx
+++ b/frontend/src/pages/ProjectDetail.tsx
@@ -119,6 +119,11 @@ export default function ProjectDetail() {
icon:
,
label:
赞助支持,
},
+ {
+ key: 'about',
+ icon:
,
+ label:
关于我们,
+ },
{
type: 'group' as const,
label: '创作管理',
@@ -186,6 +191,17 @@ export default function ProjectDetail() {
},
],
},
+ {
+ type: 'group' as const,
+ label: '官方资源',
+ children: [
+ {
+ key: 'source-code',
+ icon:
,
+ label:
源码库,
+ },
+ ],
+ },
];
const menuItemsCollapsed = [
@@ -194,6 +210,11 @@ export default function ProjectDetail() {
icon:
,
label:
赞助支持,
},
+ {
+ key: 'about',
+ icon:
,
+ label:
关于我们,
+ },
{
key: 'world-setting',
icon:
,
@@ -448,7 +469,7 @@ export default function ProjectDetail() {
}}>
-
MuMuAINovel
+
墨木灵思
}
placement="left"
@@ -544,7 +565,7 @@ export default function ProjectDetail() {
overflow: 'hidden',
textOverflow: 'ellipsis'
}}>
- MuMuAINovel
+ 墨木灵思