Удзельнік:Artsiom91/toHlist.js
Заўвага: каб пабачыць зьмены пасьля публікацыі, Вам можа спатрэбіцца ачысьціць кэш Вашага браўзэра.
- Firefox / Safari: трымайце Shift і націсьніце Reload, ці націсьніце Ctrl-F5 ці Ctrl-R (⌘-R на Mac)
- Google Chrome: націсьніце Ctrl-Shift-R (⌘-Shift-R на Mac)
- Edge: трымайце Ctrl і націсьніце Refresh, ці націсьніце Ctrl-F5.
mw.loader.using( 'jquery.textSelection' ).done(function () {
window.toHlist = function () {
var classList = 'hlist';
var text = $( '#wpTextbox1' ).textSelection( 'getContents' );
var newText = text.replace( /(\|\s*(?:сьпіс|list)\d*\s*=)([^]*?\n\s*)(?=\||\}\})/g, function ( s, m1, m2 ) {
var m2r = m2.replace( /\{\{(?:[nN]o(?:wrap|br)|[sS])\|([^•·\}]+?)\s*(?:(?:\{\{)?•(?:\}\})?|(?:\'\'\'|\{\{)?·(?:\'\'\'|\}\})?|\{\{\*\}\})\s*\}\}\s*/g, '$1\n* ' );
if ( m2 !== m2r && classList.indexOf( 'hlist-items-nowrap' ) === -1 ) {
classList += ' hlist-items-nowrap';
}
m2r = m2r.replace( /\s*({\{[·•*т!](w(rap)?)?\}\}|·|•||)(?: )?\s*(?: )?/g, '\n* ' );
if ( m2 !== m2r ) {
m2r = m2r.replace( /^(\s*)<div(?:[\w ]+?=[^<>]+| ?)>([^]*?)\n?<\/div>(\s*)$/, '$1$2$3' );
m2r = m2r.replace(
/^(\s*)\{\{[nN]owrap begin\}\}([^]*?)\n?\{\{[nN]owrap end\}\}(\s*)$/,
'$1$2$3'
);
m2r = m2r.replace( /^(\s*)<center>([^]*?)\n?<\/center>(\s*)$/, '$1$2$3' );
m2r = '\n* ' + m2r.replace( /^\s*/g, '' );
m2r = m2r.replace( /\* \{\{(?:[nN]o(?:wrap|br)|[sS])\|([^\}]+?)\s*\}\}(\s*)$/, '* $1$2' );
m2r = m2r.replace( / *(\s*)$/, '$1' );
var prevM2r = m2r;
m2r = m2r.replace( /\* \}\}\n/g, '* ' );
m2r = m2r.replace( /\* \{\{(?:[nN]o(?:wrap|br)|[sS])\|/g, '* ' );
m2r = m2r.replace( /(\n\* )([^{].+)\}\}(\s*)$/, '$1$2$3' );
if ( prevM2r !== m2r && classList.indexOf( 'hlist-items-nowrap' ) === -1 ) {
classList += ' hlist-items-nowrap';
}
}
return m1 + m2r;
} );
if ( !newText.match( /[Нн]авігацыйная паласа/ ) && !newText.match( /[^"']hlist[^"']/ ) ) {
if ( newText.indexOf( '\n\n' ) !== -1 ) {
newText = newText.replace( /^([^]*?)(\n\n)/, '$1\n|кляса_сьпісаў = ' + classList + '$2' );
} else {
newText = newText.replace(
/^([^]*\| *state *=[^\n]*\n)/,
'$1|кляса_сьпісаў = ' + classList + '\n'
);
}
}
$( '#wpTextbox1' ).textSelection( 'setContents', newText );
var summaryText = $( '#wpSummary' ).val();
if ( text !== newText && !/hlist/.test( summaryText ) ) {
$( '#wpSummary' ).val( summaryText + ( /[^,; \/]$/.test( summaryText ) ? ', ' : '' ) +
'перавод на hlist пры дапамозе [[:be:Шаблон:Navbox#bookmarklet|букмарклета]]'
);
}
};
window.toHlist();
} );