Wikiprojekt:Sprzątanie kodu

(Przekierowano z Wikipedia:SK)
Projekt Sprzątanie kodu
Projekt nadrzędny

Sprzątanie Wikipedii

Powiązane projekty
{{user projekt sprzątanie kodu}}

daje efekt:

SK Ten wikipedysta jest uczestnikiem Projektu Sprzątanie kodu.

Wikiprojekt ma na celu czyszczenie kodu stron Wikipedii. Aby dołączyć do wikiprojektu, należy włączyć odnośny gadżet w zakładce Preferencje albo skorzystać z odpowiedniego kodu dla bota.

Gadżet w oknie edycji edytuj

Narzędzie sprzątania kodu należy wykorzystywać przy okazji normalnej pracy edytorskiej. Aby dodać sobie przycisk do sprzątania ( ), należy w preferencjach Wikipedii na karcie Gadżety włączyć Sprzątanie kodu lub „ręcznie” zainstalować skrypt według ogólnej instrukcji instalacji narzędzi.

Różne tryby edycji edytuj

WP:SK działa tylko dla edytorów wikikodu (wikitekstu), czyli nie działa w VE. Różnice między różnymi trybami mogą być mniej lub bardziej subtelne.

Obsługiwane tryby edycji:

  • Zwykły edytor kodu (textarea, 2010) – to jest podstawowy tryb dla WP:SK. W pasku narzędziowym powinna być widoczna normalna ikona sprzątania.
  • Zwykły edytor z podświetlaniem składni – to jest edytor z tym samym paskiem co wyżej, ale z włączonym trybem podświetlania składni. Technicznie rzecz biorąc okienko edycji działa wówczas inaczej, ale skrypt sobie z tym radzi (a w każdym razie powinien).
  • Edytor kodu VE (2017) – w funkcjach eksperymentalnych to „Nowy tryb wikitekstu”, ale w praktyce to porzucony projekt (miał być wdrożony jeszcze w 2017 roku, ale pozostał wieczną betą). Mimo tego, WP:SK obsługuje ten tryb. Sprzątanie powinno uruchamiać przez wciśnięcie skrótu: Ctrl+⇧ Shift+1 (⌘ Cmd w MacOS). Powinna być też widoczna ikonka.

Wykonywane zmiany edytuj

  • sprzątanie wikilinków (m.in. poprawa anglojęzycznych przestrzeni, różnego rodzaju skracanie kodu linków, poprawki popularnych linków)
  • sprzątanie szablonów (m.in. sprzątanie kodów infoboksów, skracanie kodu szablonów, wstawianie multilang, ujednolicanie nazw szablonów)
  • sprzątanie innych elementów wikiskładni (m.in. ujednolicanie standardowych nagłówków, sprzątanie kod list)
  • sprzątanie tekstu (m.in. korekty dat, poprawki popularnych skrótów, zamiana popularnych encji na odpowiedni znak)
  • porządkowanie kategorii itp.

Skrypt działa na zaznaczonym obszarze lub na całości okna edycyjnego (jeśli nic nie zostało zaznaczone). Powinien działać pod wszystkimi współczesnymi przeglądarkami. Po uruchomieniu należy zawsze sprawdzić, czy skrypt wykonał prawidłowe zmiany – w tym celu używa się przycisku „Podgląd zmian”.

Zmiany nie są wykonywane w obrębie specjalnych tagów, czyli obszarów w tagach: nowiki, pre, source i math.

Nie powinno się wykonywać edycji, które polegają wyłącznie na użyciu tego gadżetu. Warto jednak zwrócić uwagę, że niektóre rozszerzenia wykonują operacje wpływające na wygląd artykułu (np. zamiana dywizu: - na półpauzę: –) i wówczas edycja taka może mieć sens.

Nie używaj tego gadżetu na artykułach z nieprzejrzanymi zmianami – może to znacząco utrudnić przeglądanie zmian redaktorom, gdyż gadżet może generować dużą liczbę zmian. Wyjątek stanowią artykuły nieposiadające jeszcze wersji przejrzanej.

Notka autorska edytuj

Szczególne podziękowania dla:

  • ABach – za zebranie i opracowanie długiej listy elementów do sprzątania.
  • Malarz pl – za garść kolejnych elementów do sprzątania.
  • BartekChom – za pomysły i gotowe wyrażenia regularne.
  • Gregul – za garść wyrażeń regularnych.
  • PMG – za wytrwałe i szczegółowe testowanie.
  • ToSter – za testy i pomysły na nowe rozwiązania.

Ustawienia edytuj

Ustawienia należy wprowadzić na swoją podstronę ze skryptami.

Sprzątanie szablonów R (od wersji 2.10.1)

Możliwość wyłączenia wbudowanej zamiany {{R}} na <ref>.

var wp_sk_r_replace_enabled = false; // wylaczenie zmiany R na ref

Gdy wbudowana zamiana jest wyłączona, to pojawia się dodatkowy przycisk ( ), który umożliwia zmianę R na ref w wybranych artykułach.

Sprzątanie przekierowań (od wersji 2.2.0)
var wp_sk_redir_enabled = true; // ajaksowe redirecty

Dołączenie tej opcji powoduje, że przy zwykłym podglądzie artykułu sprawdzone zostaną wszystkie przekierowania.

Jeśli w podglądzie znalezione zostaną przekierowania, to najpierw pojawi się dodatkowa ikonka przetwarzania:  . Gdy sprawdzanie zostanie zakończone, w ikonce przycisku sprzątania pojawi się małe "#R" ( ). Wciśnięcie przycisku sprzątania z małym "#R" spowoduje, że wikilinki przekierowań zostaną poprawione.

Obecnie przekierowania są sprawdzane wyłącznie, gdy widoczny jest podgląd. Przy czym można włączyć podgląd od razu przy wejściu do edycji – wystarczy ustawić odpowiednią opcję na stronie preferencji (zakładka „Edytowanie” → „Pokaż podgląd strony podczas pierwszej edycji”).

Forki (inne wersje) edytuj

W grudniu 2007 roku powstała nowa wersja oparta na ówczesnej wersji 1.4.1, która rozwijana była przez BartkaChoma (zobacz osobną stronę). Potem została dodatkowo przebudowana i jest rozwijana niezależnie od oryginału (nie wszystkie opisane tu funkcje są tam dostępne i nie wszystkie stamtąd są dostępne tutaj).

Rozszerzenia edytuj

Po włączeniu gadżetu w preferencjach można też włączyć różne rozszerzenia. W Specjalna:Moja strona/common.js (albo skrypcie odpowiednim dla skórki której używasz) należy wstawić podobny do poniższego kod:

mw.hook('userjs.wp_sk.ready').add(function (wp_sk) {
	importScript('Wikipedysta:Malarz_pl/wp_sk.js');
	importScript('Wikipedysta:Malarz_pl/wp si.js');
	importScript('Wikipedysta:Beno/wp_sk.js');
} );

Powyższy kod włącza trzy istniejące rozszerzenia skryptu (ich funkcje opisane są w tabeli poniżej).

Popularne rozszerzenia użytkowników edytuj

Jeśli sam korzystasz z WP:SK z dodatkowymi opcjami, podaj poniżej link do swojego kodu skryptu. W ten sposób inni użytkownicy będą mogli się wzorować na Twoim kodzie, dodawać z niego wybrane opcje do swojego, a może i autor wprowadzi Twoje poprawki do wersji głównej. Oczywiście należy zachować wzmożoną ostrożność przy korzystaniu z poniższych skryptów, część opcji może być niedokładnie przetestowana lub działać w ograniczonym zakresie (np. skrypt ułatwia zmiany, ale trzeba jeszcze trochę poprawić ręcznie). Zebranie rozszerzeń pozwoli też na wzajemną kontrolę. Najlepiej w swoich rozszerzeniach komentować zmiany, które nie są oczywiste.

Skrypt Autor Dodane rozszerzenia
Wikipedysta:ToSter/wpsk user.js ToSter
  • wikizacja HTML
  • zamiana łączników na poprawne półpauzy (omijane są linki i nazwy plików)
  • formatowanie liczb w niektórych przypadkach
  • poprawa niektórych błędów ortograficznych i interpunkcyjnych
  • usuwanie pustych parametrów szablonów cytowania
  • ujednolicanie kodów wstawionych plików
  • inne drobne zmiany

UWAGA! Autor jest praktycznie nieaktywny i skrypt nie jest na bieżąco aktualizowany

Wikipedysta:Malarz pl/wp sk.js malarz_pl
  • poprawienie błędnego formatowania ISBN -10/13
  • poprawienie nazw szablonów
  • usunięcie spacji z końca linii
  • unifikacja nagłówków (Bibliografia, Referencje, Piśmiennictwo)
  • poprawa liczebników w datach (usuwanie kropek)
  • usunięcie enterów po infoboksie
  • usunięcie enterów na początku artykułu
  • usunięcie <br>'ów na końcach linii w listach (punktowanej i numerowanej)
  • zamienia sekwencje specjalne na znaki UTF-8 (większość)
Wikipedysta:Malarz pl/wp si.js malarz_pl
  • poprawia formatowanie infoboksów
Wikipedysta:Beno/wp sk.js Beno
  • najbardziej rozwinięty plik konfiguracyjny do skryptu Nuxa, ciągle rozwijany, wprowadzający bardzo dużo poprawek, ale za cenę możliwych błędów; absolutnie nie nadaje się do stosowania automatycznego, konieczne dokładne sprawdzanie zmian(!)

Własny skrypt edytuj

Jeżeli chcesz utworzyć własny skrypt poprawiający różne często przez ciebie korygowane błędy wklej do Specjalna:Moja strona/wp sk.js poniższy kod:

mw.hook('userjs.wp_sk.ready').add(function (wp_sk) {
	var orig_cleanerWikiVaria = wp_sk.cleanerWikiVaria;
	wp_sk.extension += "+[[Wikipedysta:ADRES_SKRYPTU|NAZWA]]";

	wp_sk.cleanerWikiVaria = function(str) {
		// oryginalny cleaner
		str = orig_cleanerWikiVaria.apply(this, arguments);

		// tu wstawiasz to co chcesz aby skrypt robił dodatkowo np.:
		//str = str.replace(/ISBN-1(0|3):* */g, 'ISBN ');
		//...

		return str;
	};
});

Uwaga! Użycie .apply(this, arguments) jest bardzo ważne i wymagane do prawidłowego działania. To zapewnia, że wszystkie parametry zostaną przekazane oryginalnej funkcji i że będzie miała odpowiedni kontekst. Wywołanie orig_cleanerWikiVaria powinno nastąpić przed własnymi regułami. W miejsce // ... należy wstawić właściwą treść skryptu.

Własny skrypt można załadować dowolnie (np. za pomocą importScript).

Oczywiście, aby tworzyć własne reguły, powinno się znać przynajmniej podstawy kodowania w języku JavaScript, w szczególności sposób funkcjonowania metody replace (ang.). Warto też poznać podstawy składni wyrażeń regularnych na stronach Pomocy Wikipedii.

Dzięki podmianie funkcji cleanerWikiVaria, a nie cleaner, Twoje operacje nie będą psuły tego, czemu zapobiega podstawowa wersja: zostaną ominięte znaczniki <nowiki>, <math>, <pre> i podobne. W niektórych skryptach użytkowników mogą być podmieniane inne funkcje, jednak nie należy tego robić bez specjalnego powodu.

Hooks edytuj

W ramach wp_sk dostępnych jest parę zdarzeń (wywołanych poprzez `mw.hook`), które można użyć do rozszerzenia funkcji `wp_sk`. Dzięki temu można mieć pewność, że wp_sk zostało załadowane.

W kolejności występowania:

  1. `userjs.wp_sk.loaded` (wp_sk) – obiekt wp_sk jest załadowany i mógłby zostać zmodyfikowany (rozszerzony)... Ale lepiej poczekać aż wp_sk będzie gotowy, żeby niepotrzebnie nie ładować skryptu.
  2. `userjs.wp_sk.ready` (wp_sk) – wp_sk jest gotowy i rozpoczęto edycję.
  3. `userjs.wp_sk.button_created` (wp_sk) – uruchomiono edycję w trybie z dostępnym przyciskiem. Zwróć uwagę, że edycja taka może być w trybie z podświetlaniem składni.
  4. `userjs.wp_sk.command_created` (wp_sk) – uruchomiono edycję w trybie ze skrótem (ctrl+shift+1). Zdarzenie występuje zamiennie z `button_created` (przynajmniej na ten moment tj. wersja 2.11).

Używanie hook:

mw.hook('userjs.wp_sk.ready').add(function (wp_sk) {
	console.log('[wp_sk] wp_sk.ready', wp_sk.version);
});

Zobacz przykład użycia `hook` w sekcji #Własny skrypt.

Jeśli chcesz napisać jakieś rozszerzenie, ale powyższe zdarzenia nie są wystarczające → napisz do mnie.

Botowate edytuj

Lista zadań bota jest dostępna tutaj.

Aby skorzystać z wersji dla botów, należy:

  • posiadać własnego bota używającego oprogramowania Tawbot.pm
  • podmienić kod funkcji post w pliku Tawbot.pm
  • używać bota do zwykłej pracy.

Zobacz też edytuj