MediaWiki:EditacniKlavesoveZkratky.js

Z WikiSkript

Poznámka: Po zveřejnění musíte vyprázdnit cache vašeho prohlížeče, jinak změny neuvidíte.

  • Firefox / Safari: Při kliknutí na Aktualizovat držte Shift nebo stiskněte Ctrl-F5 nebo Ctrl-R (na Macu ⌘-R)
  • Google Chrome: Stiskněte Ctrl-Shift-R (na Macu ⌘-Shift-R)
  • Internet Explorer / Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5
  • Opera: Stiskněte Ctrl-F5.
/**
 * Přidání klávesových zkratek do editačního pole WikiEditoru.
 *
 * @file Přidá klávesové zkratky do WikiEditoru
 * @author Slepi
 * @license https://www.gnu.org/licenses/gpl.html GNU General Public License 3.0
 */

pridatZkratky = {

    /* funkce nahrazující původní mw.toolbar.insertTags() */
    pridej: function(pretag, posttag, text) {

        $("#wpTextbox1").textSelection("encapsulateSelection", {
                                       pre: pretag,
                                       post: posttag || "",
                                       peri: text || ""
        });
        
    },


    start: function() {

        /* stisknutá klávesa Ctrl */
        var isCtrl = false, keycode = 0;

        /* reset: po odeznění stisku klávesy Ctrl */
        $("#wpTextbox1").on("keyup", function(event) {
            keycode=event.which;
            isCtrl=false;
        });

        /* zkratky */
        $("#wpTextbox1").on("keydown", function(event) {
            keycode=event.which;

            /* nastavení: klávesa Ctrl */
            if(keycode === 17) isCtrl = true;
            if(keycode === 91) isCtrl = true; // Cmd - uživatelé Mac

            /* nastavení: klávesa Alt (pro případ stisku pravého Alt) */
            if(keycode === 18) {
                isCtrl = false;
                return true;
            }

            /* zkratka CTRL+B: tučné písmo */
            if(keycode === 66 && isCtrl === true) {
                pridatZkratky.pridej("'''", "'''", "Tučný text");
                return false;
            }

            /* zkratka CTRL+I: kurzíva */
            if(keycode === 73 && isCtrl === true) {
                pridatZkratky.pridej("''", "''", "Kurzíva");
                return false;
            }

            /* zkratka CTRL+L: odkaz */
            if(keycode === 76 && isCtrl === true) {
                pridatZkratky.pridej("[[", "]]", "Název článku");
                return false;
            }
        });
    }
}

/* zapnout po načtení stránky */
$(function(){
  if (document.getElementById("wpTextbox1") && $.inArray(mw.config.get("wgAction"), ["edit", "submit"]) !== -1) pridatZkratky.start();
});