笔者博客目前使用的Typecho,主题使用的Joe。 前面已经写过两篇相关的文章: [Typecho小试牛刀]Joe主题增加验证码(非插件方式) [Typecho小试牛刀]Joe主题增加文章目录(非插件方式) 本文是第三篇,折腾的对象是编辑器。 Joe主题自带编辑器,界面美观,功能也很强大,美中不足是没有热键功能。 下面就跟大家分享一下,如何给Joe编辑器增加热键。

/www/nongxue.top目录下/www/nongxue.top/usr/theme/Joe目录下typecho/write/js,打开index.js,在合适位置增加如下函数/* 已测 √ */
init_HotKey(){
document.querySelector('.cm-content').onkeydown =function(e){
e = e || window.event;
if(e.ctrlKey && e.altKey){
e.preventDefault();
let title = '';
switch(e.keyCode){
case 66://B 按键键码
title='加粗';//按键功能 即编辑器按钮悬停提示
break;
case 67://C
title='行内代码';
break;
case 68://D
title='删除';
break;
case 69://E
title='图片表情';
break;
case 70://F
title='全屏/取消全屏';
break;
case 72://H
title='回复可见';
break;
case 73://I
title='倾斜';
break;
case 80://P
title='发布文章';
break;
case 83://S
title='保存草稿';
break;
case 86://V
title='预览/取消预览';
break;
}
if(title){
$('.cm-tools-item[title="'+title+'"]').click();
}
}
}
}Ctrl+Alt+热键的组合方式,比如Ctrl+Alt+D是增加删除线case后面的数值为按键键码,可以参考文末键码对应表。title为按键功能,即编辑器按钮悬停提示文字,可以根据自己需求修改index.js搜索this.init_AutoSave();,定位到该行this.init_HotKey();,如下图所示
typecho/write目录,执行命令安装依赖(我已安装过,就不展示截图了)cd /www/nongxue.top/usr/theme/Joe/typecho/write
npm installnpm run serve
created dist/index.bundle.js in **s即表示编译完成typecho/write/js/dist下的index.bundle.js上传到你的服务器,覆盖之前的文件,就OK了!按键 | 键码 | 按键 | 键码 | 按键 | 键码 |
|---|---|---|---|---|---|
A | 65 | K | 75 | U | 85 |
B | 66 | L | 76 | V | 86 |
C | 67 | M | 77 | W | 87 |
D | 68 | N | 78 | X | 88 |
E | 69 | O | 79 | Y | 89 |
F | 70 | P | 80 | Z | 90 |
G | 71 | Q | 81 | , | 188 |
H | 72 | R | 82 | 。 | 190 |
I | 73 | S | 83 | 【 | 219 |
J | 74 | T | 84 | 】 | 221 |
document.onkeydown = function(e){
e = e || window.event;
console.log(e);
}
altKey:是否为Alt
ctrlKey:是否为Ctrl
key:按键输入的字符
keyCode:键码
shiftKey:是否为Shift
metaKey:是否为Windows/Super键笔者为腾讯云TDP成员,点击加入腾讯云TDP
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。