📄 citation.js
字号:
// Citation plugin for HTMLArea
// Implementation by Dejan Lilkic
// Original Author - Dejan Lilkic
//
// (c) Dejan Lilkic & Levi9 Global Sourcing
// Distributed under the same terms as Apache 2.0.
// This notice MUST stay intact for use (see license.txt).
function Citation(editor) {
this.editor = editor;
var cfg = editor.config;
var self = this;
// register the toolbar buttons provided by this plugin
cfg.registerButton({
id : "citation",
tooltip : this._lc("Citation"),
image : editor.imgURL("citation.gif", "Citation"),
textMode : false,
action : function(editor) {
self.buttonPress(editor);
}
})
cfg.addToolbarElement("citation", ["abbreviation","block-quotation","inserthorizontalrule"], 1);
}
Citation._pluginInfo = {
name : "Citation",
origin : "version: 1.0, by Levi9, http://www.levi9.com",
version : "1.0",
developer : "Dejan Lilkic",
developer_url : "http://www.levi9.com",
license : "Apache 2.0"
};
Citation.prototype._lc = function(string) {
return HTMLArea._lc(string, 'Citation');
};
Citation.prototype.onGenerate = function() {
};
Citation.prototype.buttonPress = function(editor, context, updatecontextclass) {
var outparam = null;
var html = editor.getSelectedHTML();
var sel = editor._getSelection();
var range = editor._createRange(sel);
var cite = editor._activeElement(sel);
if(!(cite != null && cite.tagName.toLowerCase() == "cite")) {
cite = editor._getFirstAncestor(sel, 'cite');
}
if (cite != null && cite.tagName.toLowerCase() == "cite"){
outparam = {text : cite.innerHTML};
} else {
outparam = {text : html};
}
try {
var doc = editor._doc;
if (!cite) {
//check range length
var compare = 0;
if (HTMLArea.is_ie) {
if(sel.type == "Control") {
compare = range.length;
} else {
compare = range.compareEndPoints("StartToEnd", range);
}
} else {
compare = range.compareBoundaryPoints(range.START_TO_END, range);
}
if (compare == 0) {
alert(HTMLArea._lc("You need to select some text before creating a citation"));
return;
}
cite = doc.createElement("cite");
cite.innerHTML = html;
if (HTMLArea.is_ie) {
range.pasteHTML(cite.outerHTML);
} else {
editor.insertNodeAtSelection(cite);
}
}else if( cite.tagName.toLowerCase() == "cite" ) {
//remove cite tag
var el = cite;
if (HTMLArea.is_ie) {
el.outerHTML = HTMLArea.htmlEncode(el.innerText);
} else {
var txt = document.createTextNode(HTMLArea.getInnerText(el));
el.parentNode.insertBefore(txt, el);
HTMLArea.removeFromParent(el);
}
}
} catch (e) {
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -