mirror of
https://github.com/UnickSoft/graphonline.git
synced 2025-07-03 08:15:38 +00:00
98 lines
2.5 KiB
JavaScript
Executable File
98 lines
2.5 KiB
JavaScript
Executable File
/*
|
|
Equation Editor Plugin for CKEditor v4
|
|
Version 1.4
|
|
|
|
This plugin allows equations to be created and edited from within CKEditor.
|
|
For more information goto: http://www.codecogs.com/latex/integration/ckeditor_v4/install.php
|
|
|
|
Copyright CodeCogs 2006-2013
|
|
Written by Will Bateman.
|
|
*/
|
|
CKEDITOR.plugins.add( 'eqneditor', {
|
|
availableLangs:{en:1},
|
|
lang : "en",
|
|
requires: [ 'dialog' ],
|
|
icons: "eqneditor",
|
|
|
|
init : function(editor)
|
|
{
|
|
var http = ('https:' == document.location.protocol ? 'https://' : 'http://');
|
|
|
|
// First make sure we have loaded the necessary scripts
|
|
CKEDITOR.scriptLoader.load( [
|
|
http+'latex.codecogs.com/js/eq_config.js',
|
|
http+'latex.codecogs.com/js/eq_editor-lite-16.js',
|
|
]);
|
|
|
|
// Load Additional CSS
|
|
var fileref=document.createElement("link");
|
|
fileref.setAttribute("rel", "stylesheet");
|
|
fileref.setAttribute("type", "text/css");
|
|
fileref.setAttribute("href", http+'latex.codecogs.com/css/equation-embed.css');
|
|
document.getElementsByTagName("head")[0].appendChild(fileref)
|
|
|
|
var pluginCmd='eqneditorDialog';
|
|
|
|
// Add the link and unlink buttons.
|
|
editor.addCommand(pluginCmd, new CKEDITOR.dialogCommand(pluginCmd,
|
|
{
|
|
allowedContent: 'img[src,alt]',
|
|
requiredContent: 'img[src,alt]'
|
|
})
|
|
);
|
|
|
|
CKEDITOR.dialog.add(pluginCmd, this.path+"dialogs/eqneditor.js");
|
|
|
|
editor.ui.addButton( 'EqnEditor', {
|
|
label : editor.lang.eqneditor.toolbar,
|
|
command : pluginCmd,
|
|
toolbar: 'insert'
|
|
});
|
|
|
|
// add context-menu entry
|
|
if (editor.contextMenu)
|
|
{
|
|
editor.addMenuGroup(editor.lang.eqneditor.menu);
|
|
editor.addMenuItem( 'eqneditor', {
|
|
label : editor.lang.eqneditor.edit,
|
|
icon : this.path + 'icons/eqneditor.png',
|
|
command : pluginCmd,
|
|
group : editor.lang.eqneditor.menu
|
|
});
|
|
|
|
// if the selected item is image of class 'mathImg',
|
|
// we shold be interested in it
|
|
editor.contextMenu.addListener( function(element) {
|
|
var res={};
|
|
if (element.getAscendant('img', true))
|
|
{
|
|
var sName = element.getAttribute('src').match( /(gif|svg)\.latex\?(.*)/ );
|
|
if(sName!=null)
|
|
{
|
|
res['eqneditor'] = CKEDITOR.TRISTATE_OFF;
|
|
return res;
|
|
}
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
editor.on( 'doubleclick', function(evt)
|
|
{
|
|
var element = evt.data.element;
|
|
if (element && element.is('img'))
|
|
{
|
|
var sName = element.getAttribute('src').match( /(gif|svg)\.latex\?(.*)/ );
|
|
if(sName!=null)
|
|
{
|
|
evt.data.dialog = pluginCmd;
|
|
evt.cancelBubble = true;
|
|
evt.returnValue = false;
|
|
evt.stop();
|
|
}
|
|
}
|
|
}, null, null, 1);
|
|
|
|
}
|
|
});
|