跳到正文

参与贡献 ​

感谢您有兴趣为 BentoPDF 做出贡献!本指南将帮助您快速上手。

开始上手 ​

前置条件 ​

  • Node.js 18+
  • npm 9+
  • Git

环境搭建 ​

bash
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/bentopdf.git
cd bentopdf

# Install dependencies
npm install

# Start development server
npm run dev

项目结构 ​

bentopdf/
├── src/
│   ├── js/
│   │   ├── config/       # Tool definitions
│   │   ├── logic/        # Tool page logic
│   │   ├── utils/        # Shared utilities
│   │   └── ui.ts         # UI helpers
│   ├── pages/            # Tool HTML pages
│   └── css/              # Styles
├── public/
│   ├── locales/          # Translations
│   └── pymupdf-wasm/     # WASM modules
├── docs/                 # Documentation (VitePress)
└── scripts/              # Build scripts

添加新工具 ​

第 1 步:创建逻辑文件 ​

创建 src/js/logic/your-tool-page.ts:

typescript
import { showLoader, hideLoader, showAlert } from '../ui.js';
import { state } from '../state.js';

document.addEventListener('DOMContentLoaded', () => {
  // Your tool logic here
});

第 2 步:创建 HTML 页面 ​

参照现有的工具模板,创建 src/pages/your-tool.html。

第 3 步:注册工具 ​

添加到 src/js/config/tools.ts:

typescript
{
  href: import.meta.env.BASE_URL + 'your-tool.html',
  name: 'Your Tool',
  icon: 'ph-icon-name',
  subtitle: 'Description of your tool.',
}

第 4 步:添加到构建配置 ​

将页面添加到 vite.config.ts:

typescript
'your-tool': resolve(__dirname, 'src/pages/your-tool.html'),

第 5 步:添加翻译 ​

在 public/locales/ 下的所有语言文件中添加条目:

json
{
  "yourTool": {
    "name": "Your Tool",
    "subtitle": "Description"
  }
}

代码风格 ​

  • 所有新代码都使用 TypeScript
  • 遵循现有模式以保持一致
  • 提交前运行 npm run format
  • 生产代码中不要写注释(构建时会移除注释)

Pull Request 流程 ​

  1. 创建功能分支:git checkout -b feature/your-feature
  2. 进行修改
  3. 充分测试:npm run build
  4. 提交 PR 并附上清晰的说明

翻译 ​

添加新语言请参阅 TRANSLATION.md。

贡献者许可协议 ​

在您的 PR 被合并之前,需要先签署我们的 CLA:

获取帮助 ​

许可证 ​

BentoPDF 采用双重许可:

贡献代码即表示您同意您的贡献将按上述条款授权。

采用 AGPL-3.0 与商业许可双重授权。