On Fri, Aug 5, 2016 at 11:53 AM, Paul Libbrecht <[email protected]> wrote:
Cool, thanks Marius,
I was able to add something that adds a button to the CKEditor by using approximately the following snippet:
require(['jquery'], function($) {$(document).ready(function() { if(XWiki.contextaction=='edit') { require(['deferred!ckeditor'], function(ckeditorPromise) { ckeditorPromise.done(function(ckeditor) { ckeditor.on('instanceCreated', function(event) { event.editor.once('configLoaded', function(event) { ckeditor.tools.extend(event.editor.config, { plugins: 'ckeditor_wiris', }, true); }); ckeditor.plugins.addExternal('ckeditor_wiris', '/wiriseditorapp/ckeditor_wiris/plugin.js'); }); }); }); }})});
within CKEditor.EditSheet2 which loads everywhere (I hope syntax-colored html doesn't bother people's reading, it's a present of IntelliJ IDEA). I am sure there are less verbose ways to do it!
One thing, however, where this is incomplete is that this only evaluates if XWiki.contextaction=='edit' instead of checking for something more realistic such as the availability of one or several CKeditors. It
You don't need to check for XWiki.contextaction=='edit'. That's the goal of the deferred module loading http://platform.xwiki.org/xwiki/bin/view/DevGuide/JavaScriptAPI#HDeferredDep... . The ckeditorPromise will be resolved when the editor is available (either in edit mode or anywhere else the editor is loaded). In other words, you don't pull CKEditor, you are notified if someone else pulls it. Of course, you still need to load the JSX on each page. In order to load your JSX only when the CKEditor code is loaded we would need a UI extension point (that the CKEditor would execute each time its code is loaded).
doesn't trigger errors so it's not too bad (it is because of the promise?). With comments on optimization, I think we should start a snippet page or something such.
Now, the content that is created with this plugin (MathML elements) is being killed by the rendering framework. I guess I can either: - let it be wrapped as a macro - adjust the rendering framework to respect that bit
I think the second is impossible though. Or?
Very difficult anyway, so you should try the wiki macro approach first. Hope this helps, Marius
thanks
Paul
is there some hint to add a plugin (with a button) to the CKEditor? Yes, but you can also do it without touching CKEditor.EditSheet (if you want to write an extension for instance). See http://jira.xwiki.org/browse/CKEDITOR-46?focusedCommentId= 90672&page=com.atlassian.jira.plugin.system.issuetabpanels: comment-tabpanel#comment-90672 . I tried adding the extraConfigs variable within the configuration but it seems like this cannot load my plugin. I don't know what you mean by "extraConfigs" but you can checkout https://github.com/xwiki-contrib/application-ckeditor/ blob/application-ckeditor-1.0/ui/src/main/resources/ CKEditor/EditSheet.xml#L154 to see how to use an external plugin (in the first version of the CKEditor integration the Source plugin was defined in a wiki page as a proof of concept).
It would be cool to have an extension mechanism for that.
See http://jira.xwiki.org/browse/CKEDITOR-16 . I voted.
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs