Skip to content

介绍

DocsJS 是一个渲染优先的 Word 保真组件,以 Web Component 为核心,提供 React/Vue 适配器。它将 Word/WPS/Google Docs 内容接入 Web 应用,无需手工重构版式,在一次导入中保留结构、样式与语义。

什么是 DocsJS?

DocsJS 解决了一个常见问题:将富文档内容导入 Web 应用而不丢失格式。当用户从 Word、WPS 或 Google Docs 粘贴内容时,结果往往是混乱的样式、丢失的格式和错乱的表格。

DocsJS 提供:

  • 无损导入 - 保留源文档中的所有元素
  • 多框架支持 - 支持 React、Vue 和原生 Web Components
  • 可扩展架构 - 插件系统支持自定义转换
  • 生产就绪 - TypeScript、Tree-shakeable、CSP 友好

核心架构

采用三层 PicGo 风格架构:

┌─────────────────────────────────────────────────────────────────────┐
│                          平台层                                    │
│  CLI + API + GUI + 配置管理 + 插件注册                            │
├─────────────────────────────────────────────────────────────────────┤
│                         适配器层                                   │
│  DOCX 解析器 ←→ DocumentAST ←→ HTML/MD/JSON 渲染器               │
├─────────────────────────────────────────────────────────────────────┤
│                          核心引擎                                  │
│  AST v2 + 管道 + 插件编排器 + 安全                               │
└─────────────────────────────────────────────────────────────────────┘

核心特性

🔌 插件生态

8 个生命周期钩子,支持安全沙箱:

  • beforeParse, afterParse → 文档解析
  • beforeTransform, afterTransform → AST 处理
  • beforeRender, afterRender → 内容渲染
  • beforeExport, afterExport → 输出准备

📋 可配置配置

根据使用场景切换处理行为:

配置用途
knowledge-base技术文档,高保真
exam-paper学术论文,题目提取
enterprise-document企业文档,安全优先
default性能与保真平衡

🛡️ 安全优先

  • 插件沙箱与执行隔离
  • 细粒度文件、网络、计算访问控制
  • AST 保护防止意外语义变更
  • 基于配置的内容净化

谁应该使用 DocsJS?

对于终端用户

  • 丰富的语义保真:Word → HTML 保留布局、数学公式、表格
  • 可配置工作流:根据文档类型切换处理方式
  • 安全优先:沙箱执行与细粒度控制
  • 性能优化:大文档流式处理

对于开发者

  • 可扩展架构:8 个钩子点支持自定义功能
  • 安全模型:细粒度权限确保插件生态安全
  • 配置系统:针对特定领域需求配置处理
  • 集成友好:API 和组件接口

对于组织

  • 企业级:审计日志、合规配置
  • 可扩展:工作器管理和资源控制
  • 平台能力:支持 CMS/博客编辑器集成
  • 可扩展:支持内部插件开发

下一步

基于 MIT 许可发布。