如今,越来越多的企业接受了远程工作模式,这对高效的协同工具提出了更高的需求,特别是在线文档协作编辑。国内有很多平台工具具备协作文档编辑能力,如金山文档、飞书、钉钉等。然而,这些协作编辑软件虽然方便,但也存在一些弊端:
- 无法自由扩展功能: 例如,金山文档主要以 SaaS 模式提供,很多功能需要等待软件迭代升级才能使用;
- 数据存储安全: SaaS 模式意味着文档数据存储在云端,需要注意重要资料的安全管理;
- 无法第三方嵌入: 一些企业内部系统需要在线文档编辑能力,但现有工具往往无法嵌入,只能依靠系统自身实现。
因此,一些企业在需要在线文档协作编辑的同时,也要求编辑器具备易扩展、易集成,并且数据可以存储在本地的能力。今天为大家介绍一款满足这些需求的在线文档编辑工具——Etherpad。
Etherpad 介绍
一段话介绍 Etherpad: 一个高度可定制的开源在线文本编辑器,提供真正实时的多人协作编辑能力,具备强大的插件系统,允许用户通过安装插件来扩展功能。支持私有化部署,提供 API、iframe、插件等多种嵌入方案。
🏠 项目信息
🚀 功能特性
- 实时编辑: 支持多人实时协作编辑文档,用户可以即时看到其他人的操作。
- 插件框架: 通过插件系统,用户自由扩展新功能,支持 200 多插件。
- 实时聊天: 内置实时聊天功能,便于用户讨论和分享想法。
- 富文本编辑: 支持文本格式化、图片添加等,使文档编辑变得简单。
- 多语言支持: 界面和文档都可以根据用户的语言偏好进行本地化。
- 自托管: 可以自行部署在本地服务器上,确保数据安全和隐私。
- 集成支持: 提供 API 和 iframe 嵌入能力,允许用户通过编程方式管理。
- 版本控制: 具备文档历史记录功能,可以追踪每个人的文档修改记录。
Etherpad 安装
Etherpad 提供了多种安装方式,支持在 Linux 和 Windows 机器上部署,这次我们采用 Docker 部署:
# docker-compose 文件
services:
app:
user: "0:0"
image: etherpad/etherpad:latest
tty: true
stdin_open: true
volumes:
- plugins:/opt/etherpad-lite/src/plugin_packages
- etherpad-var:/opt/etherpad-lite/var
depends_on:
- postgres
environment:
NODE_ENV: production
ADMIN_PASSWORD: ${DOCKER_COMPOSE_APP_ADMIN_PASSWORD:-admin}
DB_CHARSET: ${DOCKER_COMPOSE_APP_DB_CHARSET:-utf8mb4}
DB_HOST: postgres
DB_NAME: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
DB_PASS: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
DB_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
DB_TYPE: "postgres"
DB_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
DEFAULT_PAD_TEXT: ${DOCKER_COMPOSE_APP_DEFAULT_PAD_TEXT:- }
DISABLE_IP_LOGGING: ${DOCKER_COMPOSE_APP_DISABLE_IP_LOGGING:-false}
SOFFICE: ${DOCKER_COMPOSE_APP_SOFFICE:-null}
TRUST_PROXY: ${DOCKER_COMPOSE_APP_TRUST_PROXY:-true}
restart: always
ports:
- "${DOCKER_COMPOSE_APP_PORT_PUBLISHED:-9001}:${DOCKER_COMPOSE_APP_PORT_TARGET:-9001}"
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: ${DOCKER_COMPOSE_POSTGRES_DATABASE:-etherpad}
POSTGRES_PASSWORD: ${DOCKER_COMPOSE_POSTGRES_PASSWORD:-admin}
POSTGRES_PORT: ${DOCKER_COMPOSE_POSTGRES_PORT:-5432}
POSTGRES_USER: ${DOCKER_COMPOSE_POSTGRES_USER:-admin}
PGDATA: /var/lib/postgresql/data/pgdata
restart: always
volumes:
- postgres_data:/var/lib/postgresql/data/pgdata
volumes:
postgres_data:
plugins:
etherpad-var:
启动服务:
docker-compose up -d
启动完成后,访问 http://hostip:9001
打开页面。
Etherpad 插件
Etherpad 提供了一个非常强大的插件扩展体系,目前有 200 多种插件。
插件市场地址:https://static.etherpad.org/index.html
Etherpad 部署完成后,登录后台,可以根据实际需求安装不同功能的插件。
管理员登录地址:http://hostip:9001/admin
管理员默认账号密码:admin/admin
Etherpad 集成
一、HTTP API
Etherpad 提供了详细的在线 API 文档,部署完成后,可以通过以下地址访问 API 说明文档:
http://xxx.xxx.xxx.xxx:9001/api/openapi.json
二、iframe 嵌入
Etherpad 是 Web 编辑器,可以很方便地通过 iframe 嵌入其他系统:
<iframe src='http://pad.test.de/p/PAD_NAME#L4?showChat=false&showLineNumbers=false' width=600 height=400></iframe>
三、Etherpad jQuery 插件
Etherpad 子项目下提供了 Etherpad jQuery 插件,可轻松地在网页中嵌入和访问 Etherpad。该插件使用 iframe 将 pad 内容注入 div。它还可以读取 Pad 的内容并将其写入 div:
GitHub 地址:etherpad-lite-jquery-plugin
四、Changeset Library
可以直接利用 Changeset.js 进行集成:
GitHub 地址:Changeset.js
最后
总的来说,Etherpad 是一个功能强大、易于使用、高度可定制的实时协作文档编辑器,适用于需要团队协作完成文档编辑的各种场景。支持私有化部署,多种集成方案。有兴趣的小伙伴可以实践起来!