User:Vavilexxx/augmentedToolbar.js

function getFixedWikiLink(text) { const reBracketSpace = /\[\[\s*([^\]\[]+?)\s*\]\]/g; const rePipeSpace = /\[\[\s*([^\[\]\|]+?)\s*\|\s*([^\[\]\|]+?)\s*\]\]/g; const result = text.replace(reBracketSpace, "$1").replace(rePipeSpace, "$2"); return result; }

// function fixWikiLinks { window.fixWikiLinks = function { let focus = $(document.activeElement); if (focus) { if (focus.hasClass('CodeMirror-code')) { focus = $('#wpTextbox1'); }       if (focus.is('textarea, input')) { let oldText = focus.textSelection('getSelection'); if (oldText) { // insert your code here const newText = getFixedWikiLink(oldText); // replace text focus.textSelection('encapsulateSelection', {                   replace: true,                    peri: newText                }); }       }    } };

// function deWikify { window.deWikify = function { let focus = $(document.activeElement); if (focus) { if (focus.hasClass('CodeMirror-code')) { focus = $('#wpTextbox1'); }       if (focus.is('textarea, input')) { let oldText = focus.textSelection('getSelection'); if (oldText) { // insert your code here const reLinkText = /\[\[[^\[\]\|]+\|([^\[\]\|]+)\]\]/g;               const reLink = /\[\[([^\[\]\|]+)\]\]/g;                oldText = getFixedWikiLink(oldText);                const newText = oldText.replace(reLinkText, "$1").replace(reLink, "$1");                // replace text                focus.textSelection('encapsulateSelection', {                    replace: true,                    peri: newText                });            }        }    } };

// function getLowercased { window.getLowercased = function { let focus = $(document.activeElement); if (focus) { if (focus.hasClass('CodeMirror-code')) { focus = $('#wpTextbox1'); }       if (focus.is('textarea, input')) { let oldText = focus.textSelection('getSelection'); if (oldText) { newText = oldText.toLocaleLowerCase; // replace text focus.textSelection('encapsulateSelection', {                   replace: true,                    peri: newText                }); }       }    } };

// function getUppercased { window.getUppercased = function { let focus = $(document.activeElement); if (focus) { if (focus.hasClass('CodeMirror-code')) { focus = $('#wpTextbox1'); }       if (focus.is('textarea, input')) { let oldText = focus.textSelection('getSelection'); if (oldText) { newText = oldText.toLocaleUpperCase; // replace text focus.textSelection('encapsulateSelection', {                   replace: true,                    peri: newText                }); }       }    } };

// function getCapitalized { window.getCapitalized = function { let focus = $(document.activeElement); if (focus) { if (focus.hasClass('CodeMirror-code')) { focus = $('#wpTextbox1'); }       if (focus.is('textarea, input')) { let oldText = focus.textSelection('getSelection'); if (oldText) { const newText = oldText.charAt(0).toLocaleUpperCase + oldText.slice(1).toLocaleLowerCase; // replace text focus.textSelection('encapsulateSelection', {                   replace: true,                    peri: newText                }); }       }    } };

// function getTagged { window.getTagged = function { let focus = $(document.activeElement); if (focus) { if (focus.hasClass('CodeMirror-code')) { focus = $('#wpTextbox1'); }       if (focus.is('textarea, input')) { let oldText = focus.textSelection('getSelection'); if (oldText) { newText = '<' + oldText + ' class="" style="">'; // replace text focus.textSelection('encapsulateSelection', {                   replace: true,                    peri: newText                }); }       }    } };

/* */ // if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) { //    //////////////////////////////////////////////////////////////////////////// //     let editOpts = document.getElementsByClassName("editOptions")[0]; //    let specChars = document.getElementById("editpage-specialchars"); //    specChars.style.display = "flex"; //    specChars.style.flexDirection = "wrap"; //    specChars.style.gap = ".5em"; //    specChars.style.backgroundColor = "#eaecf0"; //    specChars.style.border = "0"; //    specChars.style.fontSize = "0.875rem"; //    specChars.style.lineHeight = "1.5714285"; //    specChars.style.color = "#202122"; //    editOpts.prepend(specChars);

//    //////////////////////////////////////////////////////////////////////////// //     let newElement = document.create("div"); //    newElement.style.border = "1px solid #c8ccd1"; //    newElement.style.height = "50px"; //    newElement.style.backgroudColor = "#fff"; //    editOpts.prepend(newElement);

// }

// if (!customizeToolbar) { // 	let customizeToolbar; // } else { // 	customizeToolbar = null; // }

let customizeToolbarSwapcasePlus = function { // $('#wpTextbox1').wikiEditor('addToToolbar', (function { // 	$('#wikiEditor-section-main').prepend(' ', {	// 		class: "group group-gadgets",	// 		rel: "gadgets"   //    }); // }));	// #editform, #wpTextbox1 $('#wpTextbox1').wikiEditor('addToToolbar', {       'section': 'main', // 'main', 'advanced'        'group': 'format', // 'group': 'gadgets', 'format', 'insert', 'codemirror', codeeditor-main, codeeditor-format, codeeditor-style        'tools': {            'lowercase': {                label: 'Перевод текста в нижний регистр',                type: 'button',                icon: '//upload.wikimedia.org/wikipedia/commons/1/10/Toolbar_Format_small.png',                action: {                    'type': 'callback',                    'execute': function(context) {                        getLowercased;                    }                }            },            'uppercase': {                label: 'Перевод текста в верхний регистр',                type: 'button',                icon: '//upload.wikimedia.org/wikipedia/commons/4/4e/Toolbar_Format_big.png',                action: {                    'type': 'callback', 'execute': function(context) { getUppercased; }               }            },            'capitalize': { label: 'Перевод первы буквы в верхний регистр, а остальных в нижний', type: 'button', icon: '//upload.wikimedia.org/wikipedia/commons/e/e4/Toolbar_case.png', action: { 'type': 'callback', 'execute': function(context) { getCapitalized; }               }            },            'taggify': { label: 'Сделать тег из выделенного текста', type: 'button', // '//upload.wikimedia.org/wikipedia/commons/5/5f/Btn_toolbar_tt.png' icon: '//upload.wikimedia.org/wikipedia/commons/a/a2/Vector_toolbar_guillemets_button_inverted.png', action: { 'type': 'callback', 'execute': function(context) { getTagged; }               }            },            'fixwikilink': { label: 'Исправление викиссылок', // or use labelMsg for a localized label type: 'button', icon: '//upload.wikimedia.org/wikipedia/commons/8/8f/OOjs_UI_icon_wikiText-progressive.svg', action: { 'type': 'callback', 'execute': function(context) { fixWikiLinks; }               }            },            'dewikify': { label: 'Дефикифицировать выделенное', // or use labelMsg for a localized label type: 'button', icon: '//upload.wikimedia.org/wikipedia/commons/e/eb/OOjs_UI_icon_noWikiText-rtl-progressive.svg', action: { 'type': 'callback', 'execute': function(context) { deWikify; }               }            }        }    }); };

/* Template */ // if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) { //    mw.loader.load('//ru.wikipedia.org/w/index.php?title=MediaWiki:xxxxxx.js&action=raw&ctype=text/javascript'); // }

// let customizeToolbar = function {

//    $('#wpTextbox1').wikiEditor('addToToolbar', { //         'section': 'advanced', //         'group': 'format', //         'tools': { //             'xxxx': { //                 label: 'xxxx', //                 type: 'button', //                 icon: '//xxxx.svg', //                 action: { //                     type: 'callback', //                     execute: function(context) { //                         xxxFunc; //                     } //                 } //             } //         } //     }); // };

if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) { mw.loader.using('user.options', function {       if (mw.user.options.get('usebetatoolbar')) {            mw.loader.using('ext.wikiEditor.toolbar', function { $(document).ready(customizeToolbarSwapcasePlus); });       }    }); }

// if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) { //    mw.loader.using(['user.options', 'jquery.textSelection'], function { //         if (mw.user.options.get('usebetatoolbar') === 1) { //             $.when( //                mw.loader.using('ext.wikiEditor'), //                $.ready //            ).then(customizeToolbarSwapcasePlus); //         } //     }); // }