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 - + - - - Star History Chart + + + Star History Chart 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
- 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 + 墨木灵思