User:Vadim/common.js

From CruisersWiki

(Difference between revisions)
Jump to: navigation, search
Line 36: Line 36:
                     session.setMode("ace/mode/css");
                     session.setMode("ace/mode/css");
                 }
                 }
 +
 +
                // add command to lazy-load keybinding_menu extension
 +
                editor.commands.addCommand({
 +
                    name: "showKeyboardShortcuts",
 +
                    bindKey: {win: "Ctrl-Alt-h", mac: "Command-Alt-h"},
 +
                    exec: function(editor) {
 +
                        ace.config.loadModule("ace/ext/keybinding_menu", function(module) {
 +
                            module.init(editor);
 +
                            editor.showKeyboardShortcuts()
 +
                        })
 +
                    }
 +
                })               
             };
             };
          
          

Revision as of 08:34, 21 August 2018

addOnloadHook(function () { 

    if (wgAction == 'edit' || wgAction == 'submit') {

        if (true) {
        // if (/\.js$/.test(wgPageName) || /\.css$/.test(wgPageName) || /^Template:/.test(wgPageName)) {

            // load Ace -- code editor -- https://ace.c9.io
            
            var initCodeEditor = function () { // https://ace.c9.io/#nav=embedding
                // https://github.com/ajaxorg/ace/wiki/Default-Keyboard-Shortcuts<
                var $wpTextbox1 = $( '#wpTextbox1' );
                var $aceEditor = $( "<div></div>" ).insertAfter( "#wpTextbox1" );
                $aceEditor.height($wpTextbox1.height());
                $aceEditor.text($wpTextbox1.text());
                $wpTextbox1.hide();
                $('#toolbar').hide();
            
                var editor = ace.edit($aceEditor[0]);
                var session = editor.getSession();
            
                session.on(
                    'change', 
                    function(e) {
                        // e.type, etc
                        $wpTextbox1.text(editor.getValue());
                });
            
                //    editor.setTheme("ace/theme/monokai");
                session.setUseSoftTabs(true);
                session.setUseWrapMode(true);
            
                if (/\.js$/.test(wgPageName)) {
                    session.setMode("ace/mode/javascript");
                } else if (/\.css$/.test(wgPageName)) {
                    session.setMode("ace/mode/css");
                }

                // add command to lazy-load keybinding_menu extension
                editor.commands.addCommand({
                    name: "showKeyboardShortcuts",
                    bindKey: {win: "Ctrl-Alt-h", mac: "Command-Alt-h"},
                    exec: function(editor) {
                        ace.config.loadModule("ace/ext/keybinding_menu", function(module) {
                            module.init(editor);
                            editor.showKeyboardShortcuts()
                        })
                    }
                })                
            };
        
            loadScript('https://cdn.jsdelivr.net/npm/[email protected]/src-noconflict/ace.min.js', initCodeEditor); //function () {});
        } else {

            // install [[Wikipedia:WikEd]] in-browser text editor

            loadWikiScript('CruisersWiki:WikiEd.js');
            //loadScript('https://en.wikipedia.org/w/index.php?title=User:Cacycle/wikEd.js&action=raw&ctype=text/javascript');
        }
    }
    
});
Personal tools
advertisement
Friends of Cruisers Wiki