Wikipedista:JAn Dudík/AutomaticCosmeticChanges.js
Vzhled
Poznámka: Po uložení musíte vyprázdnit mezipaměť vašeho prohlížeče, jinak změny neuvidíte.
// <nowiki>
/**
* @brief
* Automatické kosmetické úpravy.
*
* @details
* Před uložením stránky provádí následující kosmetické úpravy:
* * nadpisy volně s odřádkováním před a bez odřádkování za
* * volný zápis * a # seznamů
* * reference přiražené k textu
* * dlouhá pomlčka místo krátké nebo spojovníku v proškrtnutých položkách seznamů
* * správný zápis kategorií
* * formátování víceřádkových šablon
* * odstranění mezer na konci řádku
* * odstranění vícenásobných mezer v textu
* * odstranění vícenásobného odřádkování
*
* @author
* [[meta:User:Danny B.]]
*/
/*global mediaWiki, jQuery */
/*jslint browser: true, plusplus: true, white: true */
/*jshint browser:true, laxbreak:false, plusplus:false, white:false, undef:true, unused:true */
( function ( mw, $ ) {
'use strict';
if ( mw.config.get( 'wgNamespaceNumber' ) || !/^(edit|submit)$/.test( mw.config.get( 'wgAction' ) ) ) {
return;
}
$( document ).ready( function () {
var replacements = [
[
/(^|\n)(==+)([^=]+)(\2) *(?=\n)/g,
function ( $0, $1, $2, $3, $4 ) {
return $1 + '\n' + $2 + ' ' + $.trim( $3 ) + ' ' + $4;
}
], [
/\n([#\*]+)([^\n]*)/g,
function ( $0, $1, $2 ) {
return '\n' + $1 + ' ' + $.trim( $2 );
}
], [
/([^\n]) *<ref/,
'$1<ref'
], [
/# [-–] */g,
'# —'
], [
/\[\[ *Kategorie *:([^\]\|]+)((?:\|[^\]\|]*)?\]\])/gi,
function ( $0, $1, $2 ) {
return '\n[[Kategorie:' + $.trim( $1 ) + $2 + '\n';
}
], [
/(\[\[Kategorie:[^\]]+\]\])\n+(?!\[\[[a-z])/g,
'$1\n'
], [
/\n+ *\|([^-+=\[\]\n][^=\[\]\n]*)=(?![^\n\|]*\|\|[^\n]*\n)([^\n]*)(?=\n)/g,
function ( $0, $1, $2 ) {
return '\n | ' + $.trim( $1 ) + ' = ' + $.trim( $2 );
}
], [
/([^=]) +\n/g,
'$1\n'
], [
/([^\n]) +/g,
'$1 '
], [
/\n{3,}/g,
'\n\n'
]
];
$( '#wpSave' ).click( function () {
$( '#wpTextbox1' ).val( function ( index, oldPageText ) {
var newPageText = oldPageText;
$.each( replacements, function ( index, replacement ) {
newPageText = newPageText.replace( replacement[0], replacement[1] );
});
newPageText = $.trim( newPageText ) + '\n';
if ( newPageText !== oldPageText ) {
$( '#wpSummary' ).val( function ( index, summary ) {
var summarySeparator = '';
summary = $.trim( summary );
if ( summary !== '' ) {
summarySeparator = /^\/\*.*\*\/$/.test( summary ) ? ' ' : '; ';
}
return summary + summarySeparator + 'automatické kosmetické úpravy';
});
}
return newPageText;
});
return true;
});
});
}( mediaWiki, jQuery ) );
// </nowiki>