MediaWiki:Gadget-AutomaticCosmeticChanges.js
Vzhled
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)
- Edge: Při kliknutí na Aktualizovat držte Ctrl nebo stiskněte Ctrl-F5.
// <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ů
* * číslování {{Překlady}}
* * rozložený zápis prázdné šablony {{Překlady}}
* * správný zápis kategorií
* * formátování víceřádkových šablon
* * správný zápis <br /> a <hr />
* * správný zápis <references />
* * 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\{\{\s*[Ss][Uu][Bb][Ss][Tt]\s*:\s*Vzor /g,
'\n\n{{subst:Vzor '
], [
/\n([#\*]+)([^\n]*)/g,
function ( $0, $1, $2 ) {
return '\n' + $1 + ' ' + $.trim( $2 )
}
], [
/([^\n]) *<ref/,
'$1<ref'
], [
/# [-–] */g,
'# —'
], [
/\n *\{\{Překlady/g,
'\n# {{Překlady'
], [
/# \{\{Překlady *\}\}/g,
'# {{Překlady\n}}'
], [
/\[\[ *Kategorie *:([^\]]+)\]\]/gi,
function ( $0, $1 ) {
return '\n[[Kategorie:' + $.trim( $1 ) + ']]\n';
}
], [
/(\[\[Kategorie:[^\]]+\]\])\n+(?!\[\[[a-z])/g,
'$1\n'
], [
/\n+ *\|([^=\n]+)=(?![^\n\|]*\|\|[^\n]*\n)([^\n]*)(?=\n)/g,
function ( $0, $1, $2 ) {
return '\n | ' + $.trim( $1 ) + ' = ' + $.trim( $2 );
}
], [
/< *\/? *([bh]r) *\/? *>/g,
'<$1 />'
], [
/< *references *\/ *>/g,
'<references />'
], [
/([^=]) +\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 ) {
$( "#editform" ).append(
$( "<input>" ).attr({ type: "hidden", name: "wpChangeTags", value: "AKÚ" })
);
}
return newPageText;
});
return true;
});
});
}( mediaWiki, jQuery ) );
// </nowiki>