LLWiki正在建设中,欢迎加入我们

“User:Bhsd/edit.js”的版本间差异

来自LLWiki
跳转到导航 跳转到搜索
第1行: 第1行:
(function($, mw) {
(function($, mw) {
$(function() {
$(function() {
/*
引自[[moegirl:user:東東君/js/contentBackup.js]]

这是一个保存编辑内容的小插件,载入后将在“显示更改”按钮后生成一个“还原备份”按钮。
这个插件将在点击“提交编辑、显示预览、显示更改”中任意一个按钮时备份当前的编辑。当存在备份时,“还原备份”按钮变为可以点击。
备份会保存7天,7天后自动清除。
*/
if( !["edit", "submit"].includes(mw.config.get('wgAction')) ) { return; }

var editBox = $('#wpTextbox1'),
btns = $('#wpSaveWidget, #wpPreviewWidget, #wpDiffWidget'),
title = mw.config.get('wgPageName'),
backupList = JSON.parse(localStorage.getItem('LLWiki-editBackup') || '{}');
$.each(backupList, function(key, val) {
var time = new Date().getTime();
if(val.expire < time){
delete backupList[key];
}
});

var backup = backupList[title],
btn = $('<span class="oo-ui-widget oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-buttonInputWidget"><input type="button" value="还原备份" class="oo-ui-inputWidget-input oo-ui-buttonElement-button" /></span>');
if(backup) {
btn.addClass('oo-ui-widget-enabled')
.click(function() {
editBox.val(backup.content);
mw.notify('已还原备份!', { type: 'warn' });
});
}
else {
btn.addClass('oo-ui-widget-disabled');
}
$('#wpDiffWidget').after(btn);

btns.mousedown(function(e) {
var content = editBox.val(),
expire = new Date().getTime() + 1000 * 60 * 60 * 24 * 7;
backupList[title] = {
expire : expire,
content : content
};
localStorage.setItem('LLWiki-editBackup', JSON.stringify(backupList));
});

/* 普通编辑界面按tab键空4格 */
/* 普通编辑界面按tab键空4格 */
$('#wpTextbox1').keydown(function(e){
editBox.keydown(function(e){
if(e.keyCode == 9){
if(e.keyCode == 9){
e.preventDefault();
e.preventDefault();
第13行: 第58行:
}
}
});
});
if(title.endsWith('.js')) {
editBox.val(editBox.val().replace(/\t/g, " "));
}


// 由于以下代码的奇怪性质,本页面不应频繁修改,至少不能使用移动版皮肤修改
// 由于以下代码的奇怪性质,本页面不应频繁修改,至少不能使用移动版皮肤修改
if(mw.config.get('skin') == 'vector') { return; }
if(mw.config.get('skin') == 'vector') { return; }
$('#wpPreview').on('click', function() {
btns.on('click', function() {
var ele = $('#wpTextbox1');
editBox.val(editBox.val().replace(/(‘|’)/g,"'"));
ele.text(ele.text().replace(/(|)/g,"'"));
editBox.val(editBox.val().replace(/(|)/g,'"'));
ele.text(ele.text().replace(/(“|”)/g,'"'));
});
});
});
});

2020年8月19日 (三) 02:00的版本

(function($, mw) {
    $(function() {
        /*
        引自[[moegirl:user:東東君/js/contentBackup.js]]

        这是一个保存编辑内容的小插件,载入后将在“显示更改”按钮后生成一个“还原备份”按钮。    
        这个插件将在点击“提交编辑、显示预览、显示更改”中任意一个按钮时备份当前的编辑。当存在备份时,“还原备份”按钮变为可以点击。
        备份会保存7天,7天后自动清除。
        */
        if( !["edit", "submit"].includes(mw.config.get('wgAction')) ) { return; }

        var editBox = $('#wpTextbox1'),
            btns = $('#wpSaveWidget, #wpPreviewWidget, #wpDiffWidget'),
            title = mw.config.get('wgPageName'),
            backupList = JSON.parse(localStorage.getItem('LLWiki-editBackup') || '{}');
  
        $.each(backupList, function(key, val) {
            var time = new Date().getTime();
            if(val.expire < time){
                delete backupList[key];
            }
        });

        var backup = backupList[title],
            btn = $('<span class="oo-ui-widget oo-ui-inputWidget oo-ui-buttonElement oo-ui-buttonElement-framed oo-ui-labelElement oo-ui-buttonInputWidget"><input type="button" value="还原备份" class="oo-ui-inputWidget-input oo-ui-buttonElement-button" /></span>');
        if(backup) {
            btn.addClass('oo-ui-widget-enabled')
                .click(function() {
                    editBox.val(backup.content);
                    mw.notify('已还原备份!', { type: 'warn' });
                });
        }
        else {
            btn.addClass('oo-ui-widget-disabled');
        }
        $('#wpDiffWidget').after(btn);

        btns.mousedown(function(e) {
            var content = editBox.val(),
                expire = new Date().getTime() + 1000 * 60 * 60 * 24 * 7;
            backupList[title] = {
                expire : expire,
                content : content
            };
            localStorage.setItem('LLWiki-editBackup', JSON.stringify(backupList));
        });

        /* 普通编辑界面按tab键空4格 */
        editBox.keydown(function(e){
            if(e.keyCode == 9){
                e.preventDefault();
                var position = this.selectionStart,
                    left = this.value.substring(0, position),
                    right = this.value.substring(position),
                    code = left + '    ' + right;
                this.value = code;
                this.selectionStart = this.selectionEnd = position + 4;
            }
        });
        
        if(title.endsWith('.js')) {
            editBox.val(editBox.val().replace(/\t/g, "    "));
        }

        // 由于以下代码的奇怪性质,本页面不应频繁修改,至少不能使用移动版皮肤修改
        if(mw.config.get('skin') == 'vector') { return; }
        btns.on('click', function() {
            editBox.val(editBox.val().replace(/(‘|’)/g,"'"));
            editBox.val(editBox.val().replace(/(“|”)/g,'"'));
        });
    });
})(jQuery, mediaWiki);