项目中刚好要用到在线协同编辑器的功能,网上找到EtherPad还不错,体验了一番包括

  • 安装部署
  • 配置说明
  • 插件管理
  • 权限控制
  • 样式切换

EtherPad地址:https://github.com/ether/etherpad-lite

在线体验地址:https://beta.etherpad.org/

安装部署

EtherPad提供了docker部署的方式,方便快速体验

docker run -d -p 9002:9001 etherpad/etherpad

run起来后,直接访问

输入一个记事本名称后,即可创建一个新的记事本

看上去就像一个普通的富文本编辑器,尝试开启两个浏览器窗口编辑内容,可以看到内容会实时同步

这样零配置的启动后,肯定是不能用到项目中的,下面看看配置

配置说明

配置文件在docker容器内的/opt/etherpad-lite/settings.json可以编辑后重启容器

另外可以通过/admin的管理员界面进行配置管理还有重启,开启admin管理界面需要将settings.json中的users注释去掉,同时改一下默认密码

由于这个容器没有自带vi命令,先安装一下vi

apt-get update
apt-get install vim
vi settings.json
"users": {"admin": {// "password" can be replaced with "hash" if you install ep_hash_auth"password": "123456","is_admin": true},"user": {// "password" can be replaced with "hash" if you install ep_hash_auth"password": "changeme1","is_admin": false}
},

编辑完后重启容器,进入/admin

这里看到的Settings内容就是容器中的/opt/etherpad-lite/settings.json,所以可以在线编辑保存后重启,保存和重启按钮在底部

插件管理

可以看到默认的编辑页面,可以用的样式比较少,只有粗体、斜体、序号等,缺少常用标题、表格、左右对齐、字体大小等样式

这里就要说到EtherPad的插件功能,缺少的样式都能提供安装插件的方式得到,另外插件库中还有很多有意思的插件,大家可以探索一下

在Plugin manager中我一共安装了这些插件

但有些插件还需要手动改一下Settings并重启才有效,下面分别说明

align

文字左、中、右对齐插件

在Available plugins中搜索align点击install,然后去刷新记事本页面,并没有看到相应的按钮出现

打开Settings找到toolbar,去掉toolbar的注视,并添加如下内容

[“alignLeft”, “alignCenter”, “alignJustify”, “alignRight”]


保存后重启,再去刷新记事本,就可以看到对齐的操作按钮了

image_upload

看名字就知道是图片上传

同样install后,是没有按钮出现的,需要同align一样,手动添加一下按钮,另外需要加一段配置,配置图片的存储方式

“addImage”

“ep_image_upload”: {

“fileTypes”: [“jpeg”, “jpg”, “bmp”, “gif”, “png”],

“maxFileSize”: 5000000

},

保存后重启,就能看到图片按钮了,上传一张试试

tables

tables在插件列表中有个tables2,是tables的升级版,按install后,在页面上使用时js有报错用不了

但tables在插件列表中并没有,需要通过npm安装,进入容器

cd /src
npm install ep_tables

其他几个插件通过插件节目直接install即可

权限控制

EtherPad提供了丰富的API接口方便继承接入https://etherpad.org/doc/v1.5.7/

默认情况下一个记事本能被任何人编辑,只要拿到URL地址就可以

下面演示一下如何进行权限控制,只有指定的用户才能编辑,接口都是基于HTTP的,每个接口都有一个默认参数apikey

它的指在第一次启动时生成在/opt/etherpad-lite/APIKEY.txt中

1、首先在EtherPad中创建用户

2、创建组,因为权限是基于组的,一个组可以有多个记事本,组内的用户就都可编辑


3、创建组内的记事本,需要用到上一步返回的groupID

4、创建Session,建立用户与组的关系,validUntil是session的有效期,填一个未来的时间戳即可;authorID是第一步创建的用户ID

5、修改Settings开启权限认证

  "requireSession" : true,"sessionNoPassword" : true,

保存后重启,再去访问/p/447是无法访问的,界面显示载入中……

这是因为权限再启作用了,是时候用上刚才生成的sessionID了,F12在浏览器控制台设置一下cookie


在刷新页面又提示没有权限

这个地方我研究了好久,官网上也没说。这是因为使用组创建的记事本不能直接通过/p/447记事本名称来访问的,而是要带上groupId

我是怎么样发现的呢,调用一个查询API发现的listAllPads,注意这个api的版本是1.2.1,前面几个接口都是1


输入/p/g.jnIO3A65apGdgHzw$447 大功告成


样式切换

默认的样式适用使用iframe嵌入页面中,如果是打开新窗口可以使用另外一个样式,修改Settings

  "skinName": "colibris",

保存重启,刷新记事本

最后EtherPad还有聊天、时间轴、导入导出等功能大家可以去体验

在线协作编辑器EtherPad使用说明相关推荐

  1. eWebSoft在线 HTML 编辑器的使用说明

    http://www.sunmood.com/bbs/non-cgi/editor/editor.html eWebEditor是的基于网页的.所见即所得的在线HTML编辑器.她能够在网页上实现许多桌 ...

  2. WebRTC与Ace在线代码编辑器合作,实现实时协作编程

    为什么80%的码农都做不了架构师?>>>    日期:2013-5-17  来源:GBin1.com 距离WebRTC真正的应用到一些很酷的应用中还有一段时日,但是即便是这样,很多开 ...

  3. 实时协作文档编辑器Etherpad

    今天上海全市统一核酸,6 点起来的,不到 7 点就做完了,继续足不出户. 现在每天起来第一件事情就是刷上海发布和上海杨浦,看病例的居住地.昨天群里就在传小区有核酸异常,今天已经被官方确认了,只是还不清 ...

  4. 介绍一个开源的在线文档编辑器Etherpad

    我记得google doc刚出来的时候让人眼前一亮,今天偶然间发现一个也是支持多人在线编写文档的编辑器Etherpad,很有意思的一个开源项目(据说谷歌发现这个项目很有前途就把它买下来开源出来),我下 ...

  5. 在线markdown编辑器_Beegit初探:协作在线Markdown编辑器

    在线markdown编辑器 Some time ago, I wrote about the current state of MarkDown editors. It was a disappoin ...

  6. 多人编辑同一个md_HackMD:支持协作的超级好用在线Markdown编辑器

    首先这是一款超级好用的在线Markdown编辑器 狐老师一直认为,在线Markdown编辑器存在的意义,那就是为了提供一种轻量级的解决方案.比起本地化的编辑器功能上自然要弱一些,但是灵活性却强出百倍. ...

  7. 在线协作软件的三个核心引擎

    在线协作软件的三个核心引擎 总览 纵观市面上的所有协作软件,无论是Google Docs 还是 Notion,还是 Mira 或者Evernote,优秀的协作软件必然由三个核心引擎构建:渲染引擎,协同 ...

  8. overleaf服务端_部署私有在线Latex编辑器:Overleaf/sharelatex,写毕设神器

    Overleaf 前言 Latex是科研工作中最常用的文档排版系统,然而我个人觉得很多Latex编辑器没有做到开箱即用,最开始使用Latex的时候我经常一编译就是一堆bug,这让我一个计算机专业热爱折 ...

  9. au如何关闭预览编辑器_在线IDE开发入门之从零实现一个在线代码编辑器

    前言 3年前在AWS re:Invent 大会上AWS 宣布推出 Cloud9, 用于在云端编写.运行和调试代码,它可以直接运行在浏览器中,也就是传说中的 Web IDE.3年后的今天随着国内云计算的 ...

最新文章

  1. 使用树形结构保存实体
  2. Android通过PHP服务器实现登录
  3. 计算机无法开机按了f2,开机提示按f2 解决电脑开机时总是提示按F2 to continue的方法...
  4. 综合程序设计 7-4 完美的代价 (40分)
  5. about osgeo中国
  6. Acwing 1089. 烽火传递
  7. NodeJS 正则路由匹配
  8. mysqldump备份原理6
  9. NumSharp  - Numerical .NET
  10. JAVA Maven和ANT 安装 Linux(Ubuntu/Centos),Mac
  11. 记一次python分布式web开发(利用docker)
  12. isight2019安装教程_DS SIMULIA Suite 2019 (Abaqus/Isight/Fe-safe/Tosca) Win/Linux x64
  13. 跨域 CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR
  14. sum idx i matlab,聚类——FCM的matlab程序
  15. dos黑框的一些命令
  16. vue+cordova 实现第三方登录( QQ 微信 微博)之微信登录
  17. spring框架三种类型项目实现--基础maven类型、纯注解开发型、aop结合注解开发型
  18. Linux 内核/sys 文件系统介绍
  19. java正则表达式原理_Java 正则表达式详解
  20. 如何快速提取文件名放在一个excel表里?

热门文章

  1. 【最短路】Graph practice T2 drive 题解
  2. 零基础学C语言之初识C语言(下)
  3. 挖个冰块就能修自己,科学家用「冰」做了辆科考机器车,南极火星都能跑
  4. 阿里巴巴-新加坡南洋理工大学成立联合研究院 开展全方位AI合作
  5. perl读取文件夹下的文件
  6. 单片机学习记录:流水灯
  7. 【C语言】写一个斗牛小游戏的发牌器
  8. 深入剖析ReentrantLock公平锁与非公平锁源码实现
  9. win7无法打开无线网络服务器,笔记本win7系统无线网络连接受限制或无连接的解决方法...
  10. 全国各省10米分辨率的土地利用数据的制作与分享