Wikipedysta:Matma Rex/prettyref.js: Różnice pomiędzy wersjami

Z Wikipedii, wolnej encyklopedii
Usunięta treść Dodana treść
sredniki, ===, kosmetyka
wspolpraca z podswietlaniem skladni
Linia 21: Linia 21:
//
//
// Autor: Matma Rex, CC-BY-SA 3.0.
// Autor: Matma Rex, CC-BY-SA 3.0.

( function ( mw, $ ) {
var $wpTextbox1, $wpSummary;


function prettyref_run() {
function prettyref_run() {
Linia 30: Linia 34:
cache: false,
cache: false,
data: {
data: {
text: document.getElementById( 'wpTextbox1' ).value,
text: $wpTextbox1.val(),
format: 'json'
format: 'json'
},
},
Linia 52: Linia 56:
}
}
} else {
} else {
$wpTextbox1.textSelection( 'setContents', json.content );
var wpt = document.getElementById( 'wpTextbox1' );
var wps = document.getElementById( 'wpSummary' );
$wpSummary.val( $wpSummary.val() + ', [[Wikipedysta:Matma_Rex/prettyref.js|przeniesienie refów na koniec]]' );
wpt.value = json.content;
$wpSummary.val( $wpSummary.val().replace( /(^|\/\*.+?\*\/ ?), /, '$1' ) );
wps.value += ', [[Wikipedysta:Matma_Rex/prettyref.js|przeniesienie refów na koniec]]';
wps.value = wps.value.replace( /(^|\/\*.+?\*\/ ?), /, '$1' );
alert( 'OK. Przed zapisaniem sprawdź wykonane zmiany!' );
alert( 'OK. Przed zapisaniem sprawdź wykonane zmiany!' );
Linia 66: Linia 67:
}
}


if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
mw.loader.using( 'ext.gadget.lib-toolbar' ).done( function () {
$.when(
toolbarGadget.addButton( {
mw.loader.using( [ 'jquery.textSelection', 'ext.gadget.lib-toolbar' ] ),
title: 'Przenieś refy na koniec',
$.ready
alt: '{{r',
).done( function () {
id: 'mw-editbutton-prettyref',
$wpTextbox1 = $( '#wpTextbox1' );
icon: '//upload.wikimedia.org/wikipedia/commons/2/2b/Button_ref_inscription.png',
$wpSummary = $( '#wpSummary' );
onclick: function () {
prettyref_run();
toolbarGadget.addButton( {
}
title: 'Przenieś refy na koniec',
alt: '{{r',
id: 'mw-editbutton-prettyref',
icon: '//upload.wikimedia.org/wikipedia/commons/2/2b/Button_ref_inscription.png',
onclick: function () {
prettyref_run();
}
} );
} );
} );
} );
}

}( mediaWiki, jQuery ) );

Wersja z 01:10, 15 cze 2019

// To narzędzie konwertuje przypisy typu <ref> na przypisy typu {{r}}, 
// przenosząc zawartość przypisu na koniec 
// i pozostawiając w tekście głównym tylko odwołanie.
// 
// Niestety tego typu przypisy nie są całkiem poprawnie obsługiwane przez edytor wizualny :(
// Nie wyświetlają się na liście przypisów w edytorze i mogą być edytowane tylko jako wikitekst.
// Użycie narzędzia skutecznie uniemożliwia wygodną pracę nad artykułem użytkownikom edytora wizualnego.
// 
// Wykorzystuje w tym celu skrypt prettyref i interfejs WWW do niego.
// 
// Źródła:    https://github.com/MatmaRex/prettyref
// Interfejs: https://prettyref.herokuapp.com/ (umarła; Peter Bowman zrobił kopię tej strony na https://tools.wmflabs.org/pbbot/pretty-ref wraz z poprawkami)
// 
// 
// Użycie: dodaj
//   importScript("Wikipedysta:Matma Rex/prettyref.js")
// do swojego common.js. 
// 
// W pasku narzędzi pojawi się nowy przycisk ze słowem "ref".
// Kliknij, aby dokonała się magia.
//
// Autor: Matma Rex, CC-BY-SA 3.0.

( function ( mw, $ ) {
	
var $wpTextbox1, $wpSummary;

function prettyref_run() {
	$( '#mw-editbutton-prettyref' ).attr( 'src', '//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif' );
	
	$.ajax( {
		url: location.protocol + '//tools.wmflabs.org/pbbot/pretty-ref',
		type: 'POST',
		cache: false,
		data: {
			text: $wpTextbox1.val(),
			format: 'json'
		},
		success: prettyref_callback
	} );
}

function prettyref_callback( json ) {
	// http://bugs.jquery.com/ticket/10338
	if ( typeof json === 'string' ) {
		json = JSON.parse( json );
	}
	
	if ( json.status !== 200 ) {
		if ( json.error === 'no refs section present?' ) {
			alert( 'Nie odnaleziono sekcji z przypisami.' );
		} else {
			alert( 'Błąd (' + json.status + '): ' + json.error +
				'. Przypisy na tej stronie są nieprawidłowo sformatowane lub wykorzystują konstrukcje, które jeszcze nie są obsługiwane.' +
				'\n\n\nDodatkowe informacje (debug):\n' + json.backtrace );
		}
	} else {
		$wpTextbox1.textSelection( 'setContents', json.content );
		
		$wpSummary.val( $wpSummary.val() + ', [[Wikipedysta:Matma_Rex/prettyref.js|przeniesienie refów na koniec]]' );
		$wpSummary.val( $wpSummary.val().replace( /(^|\/\*.+?\*\/ ?), /, '$1' ) );
		
		alert( 'OK. Przed zapisaniem sprawdź wykonane zmiany!' );
	}
	
	$( '#mw-editbutton-prettyref' ).attr( 'src', '//upload.wikimedia.org/wikipedia/commons/2/2b/Button_ref_inscription.png' );
}

if ( [ 'edit', 'submit' ].indexOf( mw.config.get( 'wgAction' ) ) !== -1 ) {
	$.when(
		mw.loader.using( [ 'jquery.textSelection', 'ext.gadget.lib-toolbar' ] ),
		$.ready
	).done( function () {
		$wpTextbox1 = $( '#wpTextbox1' );
		$wpSummary = $( '#wpSummary' );
		
		toolbarGadget.addButton( {
			title: 'Przenieś refy na koniec',
			alt: '{{r',
			id: 'mw-editbutton-prettyref',
			icon: '//upload.wikimedia.org/wikipedia/commons/2/2b/Button_ref_inscription.png',
			onclick: function () {
				prettyref_run();
			}
		} );
	} );
}

}( mediaWiki, jQuery ) );