One2Many 是一个开源的多平台内容发布工具,支持一键将文章同时发布到多个技术平台,包括知乎、CSDN、博客园、思否、开源中国、稀土掘金、慕课手记、微信公众号等。
- 🚀 一键多发:支持同时发布到多个平台,提高内容传播效率
- 📝 Markdown编辑器:内置专业的Markdown编辑器,支持实时预览
- 🔗 多平台适配:支持8个主流技术平台的API适配
- 📊 发布监控:实时监控发布状态,提供详细的发布报告
- 📈 数据统计:提供发布历史、成功率等统计分析
- 🎨 现代化UI:采用Material Design风格,提供优秀的用户体验
| 平台 | 状态 | 认证方式 | 备注 |
|---|---|---|---|
| 知乎 | ✅ | Token | 支持文章发布和更新 |
| CSDN | ✅ | Cookie | 支持Markdown和HTML |
| 博客园 | ✅ | Cookie | 原生支持Markdown |
| 思否 | 🚧 | 开发中 | 计划支持 |
| 开源中国 | 🚧 | 开发中 | 计划支持 |
| 稀土掘金 | 🚧 | 开发中 | 计划支持 |
| 慕课手记 | 🚧 | 开发中 | 计划支持 |
| 微信公众号 | 🚧 | 开发中 | 计划支持 |
- Java 17+:编程语言
- Spring Boot 3.2+:应用框架
- Spring Security:安全框架
- MyBatis Plus:ORM框架
- MySQL 8.0+:数据库
- JWT:身份认证
- Swagger:API文档
- HTML5/CSS3:页面结构和样式
- JavaScript ES6+:交互逻辑
- Material Design:UI设计规范
- Markdown编辑器:内容编辑
- Java 17 或更高版本
- MySQL 8.0 或更高版本
- Maven 3.6 或更高版本
- 克隆项目
git clone https://github.com/your-username/One2Many.git
cd One2Many- 配置数据库
# 创建数据库
mysql -u root -p
CREATE DATABASE one2many DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 修改配置文件
# src/main/resources/application.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/one2many?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username: your_username
password: your_password- 运行项目
# 编译项目
mvn clean compile
# 运行项目
mvn spring-boot:run- 访问应用
- 构建镜像
docker build -t one2many:latest .- 运行容器
docker-compose up -d- 访问应用首页,点击注册创建账号
- 使用用户名和密码登录系统
- 进入"平台管理"页面
- 选择要连接的平台,配置相应的认证信息
- 测试连接确保配置正确
- 点击"新建文章"进入编辑器
- 使用Markdown语法编写内容
- 支持实时预览和工具栏快捷操作
- 在文章列表中选择要发布的文章
- 点击"发布"按钮,选择目标平台
- 系统将自动发布到所选平台
- 在"发布历史"页面查看发布记录
- 实时监控发布进度和状态
- 查看详细的发布报告和错误信息
POST /api/auth/register- 用户注册POST /api/auth/login- 用户登录GET /api/auth/userinfo- 获取用户信息
GET /api/articles- 获取文章列表POST /api/articles- 创建文章PUT /api/articles/{id}- 更新文章DELETE /api/articles/{id}- 删除文章
GET /api/platforms- 获取平台列表POST /api/platforms/accounts- 添加平台账号PUT /api/platforms/accounts/{id}- 更新平台账号
POST /api/publish/batch- 创建批量发布任务GET /api/publish/tasks/{id}- 获取任务详情POST /api/publish/tasks/{id}/execute- 执行发布任务
详细的API文档请访问:http://localhost:8080/swagger-ui.html
src/
├── main/
│ ├── java/com/one2many/
│ │ ├── adapter/ # 平台适配器
│ │ ├── common/ # 通用工具类
│ │ ├── config/ # 配置类
│ │ ├── controller/ # 控制器
│ │ ├── dto/ # 数据传输对象
│ │ ├── entity/ # 实体类
│ │ ├── mapper/ # 数据访问层
│ │ ├── security/ # 安全相关
│ │ └── service/ # 业务逻辑层
│ └── resources/
│ ├── static/ # 静态资源
│ ├── db/ # 数据库脚本
│ └── application.yml # 配置文件
- 创建适配器类
@Component
public class NewPlatformAdapter extends AbstractPlatformAdapter {
@Override
public String getPlatformCode() {
return "new_platform";
}
@Override
public PublishResult doPublish(PublishRequest request, UserPlatformAccount account) {
// 实现发布逻辑
}
}- 添加平台信息
INSERT INTO platform (code, name, description, status)
VALUES ('new_platform', '新平台', '新平台描述', 'ACTIVE');- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
A: 不同平台的认证方式不同:
- 知乎:需要获取个人Token,可通过开发者工具获取
- CSDN:需要登录后的Cookie信息
- 博客园:需要配置API密钥
A: 检查以下几点:
- 平台账号配置是否正确
- 网络连接是否正常
- 平台API是否有变更
- 查看详细错误日志
A: 目前支持基本的内容格式转换,后续版本将支持自定义模板功能。
- ✨ 初始版本发布
- ✨ 支持知乎、CSDN、博客园三个平台
- ✨ 实现基础的一键多发功能
- ✨ 提供Markdown编辑器
- ✨ 实现发布状态监控
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 项目地址:https://github.com/your-username/One2Many
- 问题反馈:https://github.com/your-username/One2Many/issues
- 邮箱:your-email@example.com
感谢所有为这个项目做出贡献的开发者!
⭐ 如果这个项目对你有帮助,请给我们一个星标!