AstroResearch/docs/contributing.md
Asfmq cd6af4f995 feat: 重构 PDF/文献检索同步机制、升级引力图交互与控制台 UI 样式
- [后端/PDF解析] 重构 MinerU PDF 解析流程:引入预签名两阶段直传机制,解决大文件 API 传输限制问题;支持轮询机制与本地 images 备用目录存储。
- [后端/同步与下载] 新增经典 ADS SCAN 扫描件 PDF 和 ADS_PDF 直接通道的下载逻辑;新增常用同步检索配置的持久化存储与去重管理 API。
- [后端/日志] 重构日志系统,支持控制台 pretty 输出与每日滚动文件日志(使用上海 +08:00 时区),引入 HTTP 路由请求链路追踪。
- [前端/引力图] 升级引用星系图 canvas 交互:支持平移拖拽与滚轮缩放,添加引力圈轨道装饰及未导入文献的半透明视觉区分。
- [前端/控制台] 统一重构为扁平高对比度浅色纯中文控制台样式;重新设计文献详情弹窗与状态进度条。
- [数据库] 新增 papers 表的 doctype 字段及 sync_queries 检索配置表。
2026-06-10 17:29:07 +08:00

2.0 KiB
Raw Blame History

AstroResearch Contributing Guide / 参与贡献

我们欢迎社区共同参与 AstroResearch 的开发与优化。以下是关于本地开发调试、代码规范和测试的说明。


1. 开发者本地环境搭建 (Developer Setup)

后端开发环境 (Rust)

  1. 准备 Rust 工具链 (Edition 2021)。
  2. 安装 SQLx CLI可选用于生成迁移文件
    cargo install sqlx-cli --no-default-features --features sqlite
    
  3. 启动开发模式下的 Rust 服务:
    cargo run
    

前端开发环境 (React + TypeScript)

  1. 进入 dashboard 目录,安装依赖:
    cd dashboard
    npm install
    
  2. 启动开发服务器(支持 HMR 热更新及 API 请求代理转发):
    npm run dev
    

2. 编码规范 (Coding Style Guidelines)

Rust 规范 (Backend)

  • 遵循 Rust 官方标准样式,提交前必须执行 cargo fmtcargo clippy
  • 注释和系统日志建议统一使用中文,便于开发者追踪 and 阅读。
  • API handlers 中的异常信息请使用 anyhowthiserror 进行结构化抛出。

React & TypeScript 规范 (Frontend)

  • 严格遵循 React 18/19 函数式组件写法,使用 React Hooks 维护状态。
  • 为保证生产编译成功,务必开启类型安全限制(如在导入纯类型时显式使用 import type { ... })。
  • CSS 层面使用 Tailwind CSS 统一的高对比度浅色纯中文控制台风格,所有布局、间距、颜色需遵循实边框、高对比度黑白字及高雅按钮样式(.btn-console 等),以保障学术沉浸与阅读的高保真性。

3. 测试与验证 (Testing)

运行后端单元测试

系统为各个下载、解析、词典分词、接口提取等模块设计了健全的测试。运行测试命令:

cargo test

运行前端校验

cd dashboard
npm run build   # 运行 TypeScript 类型检查及 Vite 打包编译

确保无编译 Error 或 Warn 警告后方可提交 PR。