介绍
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/博客编辑器集成
- 可扩展:支持内部插件开发