Ant*_*nto 8 keyboard-shortcuts etherpad
好吧,几乎所有内容都在标题中:是否有任何快捷方式可以执行其他操作而不是使文本变为粗体,斜体或带下划线?或者任何允许这样做的插件?
根据我的一位同事的说法,源代码似乎并不包含这些内容,但也许我们错过了一些东西?
odo*_*ony 11
Etherpad包含一个名为ACE2(最初是AppJet代码编辑器)的嵌入式富文本编辑器,它似乎负责键盘快捷键处理.
ace.js默认情况下嵌入的文件曾经被缩小,因此在较旧版本的Etherpad中难以读取,但您可以直接在infrastructure/ace 源代码的一部分中读取原始源文件,从中生成缩小版本.有关这方面的更多信息,请查看ACE2的自述文件.更新的版本(至少是etherpad.org的版本)似乎包括正常的ACE2 JS源代码.
键盘快捷键处理代码位于函数ace2_inner.js内部handleKeyEvent().基于此,看起来支持开箱即用的键盘快捷键如下(在浏览器的快捷键上,如剪切/复制/粘贴):
确实没有删除线或子弹列表的任何内容,也没有看起来像快捷方式的简单扩展机制,因此您可能需要弄脏手;-)
如果您有自己的Etherpad部署,最简单的方法是修改ACE2的源代码以处理其他快捷方式,然后ace2.js根据需要重新构建缩小版本(根据README中的说明).下面是如何处理的例子Ctrl+ S为删除线切换快捷方式,Ctrl+ L对于项目列表切换.删除线快捷方式禁用内置浏览器另存为...快捷方式,我发现这是一个奖励,但如果您不喜欢,您可以随时选择另一个密钥S.在第3200行附近,
将以下代码段插入ace2_inner.js处理其他快捷方式的外观相似的块之间:
/* Ctrl+S toggles striketrough, and prevents triggering the browser's Save dialog */
if ((!specialHandled) && isTypeForCmdKey &&
String.fromCharCode(which).toLowerCase() == "s" &&
(evt.metaKey || evt.ctrlKey)) {
// ctrl/cmd-s (strikethrough toggle)
fastIncorp(13); // don't ask me ;-)
evt.preventDefault();
toggleAttributeOnSelection('strikethrough');
specialHandled = true;
}
if ((!specialHandled) && isTypeForCmdKey &&
String.fromCharCode(which).toLowerCase() == "l" &&
(evt.ctrlKey)) {
// ctrl/cmd-L (bullet list toggle)
fastIncorp(9); // seriously, don't ask me ;-)
evt.preventDefault();
doInsertUnorderedList();
specialHandled = true;
}
Run Code Online (Sandbox Code Playgroud)
如果您无法重建缩小版本,您还可以尝试使用缩小名称直接修补它.这是我上面片段的缩小版本,虽然YMMV,我没有检查缩小是否稳定并且每次都重复使用相同的缩写名称.搜索"y"(带引号)以找到handleKeyEvent()内部的缩小版本ace.js:
if ((!Cp)&&Cu&&String.fromCharCode(Ct).toLowerCase()=="s"&&(i.metaKey || i.ctrlKey)){G(13);\\ni.preventDefault();c("strikethrough");Cp=true;}if((!Cp)&&Cu&&String.fromCharCode(Ct).toLowerCase()=="l"&&(i.metaKey||i.ctrlKey)){G(9);\\ni.preventDefault();As();Cp=true;}
Run Code Online (Sandbox Code Playgroud)
最后,如果您不控制以太网板部署,您可以使用浏览器中的GreaseMonkey脚本实现类似的handleKeyEvent()功能,该脚本可以修补默认功能.作为挂钩编辑器的起点,尝试检查window.pad*对象,例如window.padeditor.例如,在编辑器中选择一些文本,然后在控制台中尝试以下操作:
> window.padeditor.ace.execCommand('bold')
> window.padeditor.ace.execCommand('insertunorderedlist')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1033 次 |
| 最近记录: |