问题标签 [etherpad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1362 浏览

node.js - Node.js:使用快速路由进行 url 重写以代理到 etherpad

我关于stackoverflow的第一个问题;)。


我想做什么:我想使用快速路由“/pad/*”来显示 etherpad(etherpad lite)并操纵用户将看到的 pad。所以,如果我得到“/pad/p/something”,“something”将被处理,并相应地更改为真实的ID,例如“XYZ”。因此用户可以编辑正确的焊盘。但是,etherpad 需要很多静态的东西和 websocket,因此我想代理它,并在需要时操纵 ID


最小工作示例:当然,ID 更改的真正逻辑要复杂得多,但对于最小工作示例,我只是使用每个 padID 映射到“a”的逻辑。

我想出了这个:


问题: url 更改和代理实际上可以工作......有点。所有 url 都被映射以删除每个 url 前面的“/pad”,这些 url 适用于 pad、静态内容和 websocket。但是,pad ID 的映射不起作用。如果我查看“localhost:3000/pad/p/a”,我会看到“a”-pad。如果我查看“localhost:3000/pad/p/b”,我会看到“b”-pad,这不是我打算做的:/。

我究竟做错了什么?这是 node-http-proxy、express 还是 etterpad-lite 问题?

任何提示表示赞赏

0 投票
1 回答
198 浏览

python - 为 EtherPad lite 使用 python 包装器

我一直在尝试通过PyEtherpadLite使用 Etherpad lite/beta API 。

我的问题是我在哪里可以找到我的 API 密钥?根据文档,api 密钥存储在客户端文件夹基本目录中的 .txt 文件中。但我的实际问题是我只想通过由某人托管的 API访问这个垫。那么现在我在哪里可以找到 api 密钥?

在另一个博客中,我发现 https://beta.etherpad.org/的 Api 密钥是 EtherpadFTW。但这似乎不起作用。我没有收到或收到错误的 API 密钥响应。

0 投票
0 回答
543 浏览

service - debian下的Etherpad服务未在启动时启动

我正在设置一个 Debian 7.6 服务器。我已经安装了一个 etherpad (etherpad-lite) 并将它放在一个 nginx web 服务器后面。etherpad 使用 mySQL。这一切都按预期工作。

现在我希望 etherpad 作为服务运行。所以我已经完成了本教程所说的:

https://www.rosehosting.com/blog/install-etherpad-lite-on-debian-wheezy/

我已将代码放在名为:

并相应地改变了路径。这行得通!我可以使用启动和停止 etherpad

现在我希望它在启动时开始。我已将符号链接放入 rcx.d 文件夹:

etherpad 所需的 MySQL 启动方式与 S19mysql 相同。在 etherpad 初始化脚本中,我添加了依赖项:

# Required-Start: $local_fs $remote_fs $network $mysql $nginx

但是重启后服务没有启动。我仍然必须手动启动它(这有效!)。我在日志文件 dmesg 或 etherpad 日志中找不到任何输出。

任何建议如何在这里找到问题?我必须查看哪些日志文件?尽管脚本有效,但服务未启动可能会出现什么问题?

我也尝试为 S24etherpad 之类的启动顺序使用更高的数字。

谢谢!

0 投票
1 回答
253 浏览

etherpad - Etherpad server installation

I am trying to deploy an etherpad installation on a linux server. However I am unable to find ways to allow etherpad to save documents onto the server. I want to save the text files that I edit with etherpad to be available as a .txt file in a particular directory on the server.

Any suggestions as to how I can go about doing this? I did not find much documentation online to help me with this, hence resorting to this.

0 投票
2 回答
99 浏览

java - Java Swing 前端到 Etherpad

我希望将 Etherpad 的功能实现到 Java Swing 应用程序中。有一个用于访问 Etherpad 的 HTTP API 的 Java 库,但它似乎只支持获取/设置整个填充文本。我想在 Java 中对纯文本进行实时多用户编辑,所有用户在编辑时都可以实时看到彼此的更改。谁能指出我正确的方向?

0 投票
1 回答
817 浏览

ssl - 在 Etherpad 中为子域禁用 HSTS

我有一个带有两个不同证书的网站。一个供官方使用,因此用户看不到自签名警报。还有一个供私有子域内部使用(用于 phpmyadmin、roundcube 等)。这些子域仅供管理员使用,因此对我来说花钱购买通配证书似乎毫无用处。因此通配符证书是自签名的,我已经记住了哈希。

此外,我在与 http 不同的端口(不是不同的子域)上的该服务器上获得了 etherpad-Installation。Etherpad 现在似乎发送此标头“Strict-Transport-Security: max-age=31536000; includeSubDomains”,这很愚蠢,因为我找不到关闭“includeSubDomains”的选项。

现在,当我在我的垫子里,然后尝试使用我的管理子域时,由于 HSTS,我得到了一个错误,没有设置异常的选项,因此这些现在对我来说是不可用的。

有人知道如何摆脱 etherpad 安装中的“includeSubDomains”吗?

如果有人可以帮助我,我会很高兴。谢谢你。

0 投票
2 回答
580 浏览

javascript - 如何在浏览器中只加载一次多个 javascript 库?

我在网页上有多个 Etherpad 实例作为 iFrame。Etherpad 的 ep_tables 插件使用 YUI 库(近 12 个不同的 JS 文件)。这会导致站点加载大量时间,因为这些 YUI 文件会为每个 etherpad 实例加载。

所以情况就是这样——我只想为第一个 etherpad 实例加载这些 YUI 文件一次,而其余实例不应该加载 YUI 文件并以某种方式使用已经加载的 YU​​I 文件。我该如何实现呢?

PS:每个 etherpad 实例都是一个 iFrame,YUI 库是该 iFrame 内 html 的一部分。

0 投票
1 回答
82 浏览

containers - 无法运行 bluemix 容器 没有租户网络

我正在关注 etherpad 教程。

我在ubuntu上创建了一个容器并在本地运行它。对bluemix的推动奏效了。但是,当我尝试在bluemix上运行容器时,出现以下错误:

抱歉,我们这边发生错误:无法创建网络。没有租户网络可供分配。[事件 ID e1d83d17ff51f0ae]

这是暂时的失败还是我的错?

我运行了以下命令

0 投票
1 回答
155 浏览

javascript - 如何在 Etherpad 插件中捕获点击事件

我正在开发一个在文本编辑期间提供特殊自动完成功能的 etherpad 插件。为此,我需要知道用户的插入符号在哪里。但是我不知道用户是否通过鼠标单击来移动插入符号,因为我找不到合适的钩子。

作为解决这个问题的第一步,我想捕捉鼠标点击事件。(如果我能捕捉到点击事件,我仍然不确定如何找出插入符号的位置,但至少我知道何时处理它。)任何帮助表示赞赏。

0 投票
1 回答
111 浏览

javascript - 如何在按键后立即确定 Etherpad 中的插入符号位置?

我正在开发一个 Etherpad-lite 插件,在编写时提供特殊的自动完成功能。我正在尝试在用户写入时更新自动完成项目的列表。我的问题是 aceEditEvent 的 context.rep.selStart 和 context.rep.selEnd 中的插入符号位置仅在按键后的第一个 idleWorkTimer 事件中更新,为此目的有很大的延迟。

aceEditEvent 中的事件发生如下:

  1. handleKeyEvent - 立即出现(我猜是 keydown), content.rep在击键之前有选择
  2. handleKeyEvent - 立即出现(我猜是按键), content.rep在击键之前有选择
  3. handleKeyEvent - 立即出现(我猜是 keyup), content.rep在击键之前有选择
  4. idleWorkTimer - 带有长达 1s 的延迟,content.rep在击键后有选择

那么如何在没有延迟的情况下获得新的插入符号位置?