Utilisateur:Denis Gagne52/Easy LST.js

La bibliothèque libre.

Note : après avoir enregistré vos modifications, il se peut que vous deviez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

  • Firefox / Safari : Maintenez la touche Maj (Shift) en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ou Ctrl-R (⌘-R sur un Mac) ;
  • Google Chrome : Appuyez sur Ctrl-Maj-R (⌘-Shift-R sur un Mac) ;
  • Internet Explorer : Maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5 ;
  • Opera : Allez dans Menu → Settings (Opera → Préférences sur un Mac) et ensuite à Confidentialité & sécurité → Effacer les données d'exploration → Images et fichiers en cache.
function restore_lst1(){
        //var editbox = document.getElementById('wpTextbox1');
        var $textbox = $( '#wpTextbox1' );
        var search = /##[\s]*(.*?)[\s]*##[\s]*\n/;
        //var a = editbox.value.split(search);
        var a = $textbox.textSelection( 'getContents' );
		if ( a.indexOf("pagequality level=") > 0) {
        		var c = a.indexOf("</noinclude>") + 12 ;
        		var d = a.lastIndexOf("<noinclude>");        	
         	a = a.slice(c, d);
        	} 
        //alert(a);
        a = a.split(search);
        var s = a[0];
        var m = parseInt(a.length/2);
        for( var i = 0 ; i < m ; i++ ) {
            var title = a[i*2+1];
            // Ensure we'll don't get twice quote.
            title = title.replace(/^"(.*)"$/, "$1");
            title = title.replace(/^'(.*)'$/, "$1");
            var content = a[i*2+2]; 
            if( title && content.substring(0,2)=='{|' ) content = '\n' + content;
            if(title) s = s + '<section begin="'+title+'"/>' + content + '<section end="'+title+'"/>\n';
            else s = s + content;
            /* if( i < m-1 ) s = s + "----\n"; */
        }
        //editbox.value = s; 
            

        $textbox.textSelection( 'setContents', s );
        //alert(a);
}
 
/*
 * easy lst : hide section markers
 */
function easy_lst1() {
		/*var CodeMirror, editbox, a, $textbox ;
		if ( mw.user.options.get( 'codemirror-syntax-highlight' ) == 1 ) CodeMirror = true;
		CodeMirror = false;
		if (CodeMirror) {
			$textbox = $( '#wpTextbox1' );
			if($textbox) a = $textbox.textSelection( 'getContents' ) ;
			else alert ('textbox vide');
		}
		else {
    		editbox = document.getElementById('wpTextbox1');
    		if(editbox) a = editbox.value ;
		}
		if (a){
		var search = /<section\sbegin=[\s]*(.*?)[\s]*\/>/;
        a = a.split(search);
        var s = a[0]; 
        var ok = true;
        for( var i = 0 ; i < parseInt(a.length/2) ; i++ ) {
            var title = a[i*2+1];
            var content = a[i*2+2]; 
            var r2 = /^([\s\S]*?)<section\send=(.*?)\/>(\n|)[\s]*([\s\S]*?)$/;
            var m2 = content.match(r2);
            if( m2 ) {
               title = title.replace(/^"(.*)"$/, "$1");
               title = title.replace(/^'(.*)'$/, "$1");
               if(s && s.charAt(s.length-1)!='\n' && s.charAt(s.length-1)!='|' ) s = s+'\n';
               s = s + "## " + title + " ##\n"+ m2[1] ;
               if( m2[4] ) { 
                  if( m2[4]!='----\n' ) {
                    if(s && s.charAt(s.length-1)!='\n' ) s = s+'\n';
                    s = s + "####\n" + m2[4] ;
                  } 
               }
             } else { 
               ok = false; // alert("error"+title);
             }
        }
	if(ok) { 
             if (CodeMirror) {
             	//if (document.querySelector('div.CodeMirror-code noime')) $textbox.textSelection( 'setContents', s );
             	$textbox.textSelection( 'setContents', s );
             	alert(s);
             }
             else editbox.value = s; 
        }

		}  */
	var saveButton = document.getElementById("wpSave"); 
	var previewButton = document.getElementById("wpPreview"); 
	var diffButton = document.getElementById("wpDiff");
	if(saveButton){
        saveButton.onclick = restore_lst1;
		previewButton.onclick = restore_lst1;
		diffButton.onclick = restore_lst1;
        }

   //}
}

function delayedeasy_lst1() {
	setTimeout(easy_lst1, 0);
}

function easy_lst_setup1() {
	if (self.proofreadpage_raw_lst || mw.config.get( 'wgCanonicalNamespace' ) !== 'Page')
	//if (mw.config.get( 'wgCanonicalNamespace' ) !== 'Page' || !self.proofreadpage_raw_lst)
		return;

	if ($.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1) {
		mw.loader.using('ext.proofreadpage.page', function () {
		// mimic code in the extension, there is a conditionnal deps on ext.wikiEditor.
		if (mw.user.options.get('usebetatoolbar') && $.inArray('ext.wikiEditor', mw.loader.getModuleNames()) > -1) {
			if ( mw.user.options.get( 'codemirror-syntax-highlight' ) == 1 ) {
				$loadingDependencies = [ 'ext.wikiEditor', 'ext.CodeMirror.lib', 'jquery.textSelection' ];
			} else {
				$loadingDependencies = [ 'ext.wikiEditor' ];
			}
		mw.loader.using( $loadingDependencies, function() {
			jQuery(document).ready(delayedeasy_lst1());
		});
			} else {
				jQuery(document).ready(easy_lst1());
			}
		});
	}
}
$( easy_lst_setup1 );