修改 Quicktags 按钮
Quicktags 是一款基于 Javascript 的在线编辑器,其所有代码都存储在“quicktags.js”(../wp-includes/js/quicktags.js)文件中。
首先备份原有的 quicktags.js。
分析源代码可得,添加按钮的函数为“edButton”,函数定义为:
- function edButton(id, display, tagStart, tagEnd, access, open) {
- this.id = id; // 按钮所在input对象的id,不可为空;
- this.display = display; // 按钮所显示的文字,不可为空;
- this.tagStart = tagStart; // 起始标签,可为空;
- this.tagEnd = tagEnd; // 结束标签,可为空
- this.access = access; // 如不需要额外的按钮“/close”进行闭合,-1
- this.open = open; // 如不需要额外的按钮“/close”进行闭合,-1
- }
Quicktags 按钮操作分三类:
- 普通按钮:点击按钮插入起始标签,输入内容,点击原按钮/close按钮闭合标签;
- 普通按钮:选定内容,点击按钮自动插入其实标签和结束标签;
- 高等按钮:无论使用以上哪种方法插入标签,自动弹出窗口提示输入参数值,如填写图像的地址和描述。
普通按钮如:标题(<h1>-<h6>)、粗体(<strong></strong>)、有序列表(<ol><li></li><ol/>)等;
高等标签如:图像(<img … />
)、链接(…)、Footnote脚注标签(稍后介绍)。
如果添加普通标签,可以参照粗体按钮代码:
- edButtons.push(
- new edButton(
- 'ed_bold'
- ,'B'
- ,'<strong>'
- ,'</strong>'
- ,'b'
- )
- );
如果添加高等按钮,可以参照超级链接按钮代码:
- edButtons.push(
- new edButton(
- 'ed_link'
- ,'Link'
- ,''
- ,'</a>'
- ,'a'
- )
- ); // special case
- ...
- function edInsertLink(myField, i, defaultValue) {
- if (!defaultValue) {
- defaultValue = 'http://';
- }
- if (!edCheckOpenTags(i)) {
- var URL = prompt('Enter the URL' ,defaultValue);
- if (URL) {
- edButtons[i].tagStart = '<a href="' + URL + '">';
- edInsertTag(myField, i);
- }
- }
- else {
- edInsertTag(myField, i);
- }
- }
注意:你也可以不使用所谓的高等按钮,直接插入一段代码后,手动填写诸如href、url、src、art、title 等参数值。例如我编写的“话题性插图按钮”,意在为一篇日志插入一幅的插图,自定义居左或者居右,自定义边距:
- edButtons.push(
- new edButton(
- 'ed_topicimg'
- ,'Top-img'
- ,'<img align="" style="margin:;"src="" alt="" />'
- ,''
- ,'m'
- ,-1
- )
- ); // special case
升级版的 Quicktags
访问了原作者Alexking的Blog之后,我找到了 JS Quciktags Editor 最新版(版本号:1.2)。除了代码的优化之外,作者丰富了可用标签,值得提及的是“Footnote”按钮。
Footnote 可以在光标处插入上角标(如:WordPress是一种Blog文章发布系统。),并且链接到文末的条目,这是对 HTML 语言中锚点的应用。对于严谨的博客文章排版者来说这是一个很便捷的功能。虽然 Footnote 并不能完成自动排序、排序纠错之类的复杂功能,但是我们又能对一款定位为“快速、轻量级”的编辑器苛求多少呢。