Wikipedia:Narzędzia/Wyszukiwanie i zamiana

SearchBox – gadżet, który dodaje dwa przyciski do paska narzędziowego nad oknem edycji, które umożliwiają skorzystanie z nowych funkcji.
- Wyszukiwanie i zamiana — naciśnięcie pierwszego przycisku (
) ukazuje menu wyszukiwania i zamiany tekstu w edytowanym artykule (rys. 1). Oprócz prostej zamiany jednego tekstu na drugi umożliwia skorzystanie z wyrażeń regularnych (RegEx) zgodnych ze składnią używaną przez JavaScript. - Zmiana wielkości liter — drugi przycisk zmienia zaznaczony tekst (
). Zmiana ta następuje w sekwencji:
- aaa – małe litery
- Aaa – pierwsza litera duża
- AAA – wszystkie litery duże
- Począwszy od wersji 1.1.0 opcja „zamień wszystkie” działa w tle, dzięki czemu zamiana jest znacznie szybsza, a nawet drastycznie szybsza dla długich tekstów.
Na osobnej stronie zamieszczone są zrzuty ekranu (screeny, galeria).
W skrócie
[edytuj | edytuj kod]- Szybka instalacja: Preferencje → Gadżety → Edycja stron → SearchBox (link do włączenia gadżetu) – wystarczy zaznaczyć checkbox i zapisać formularz.
- Licencja: GNU General Public License
- Autorzy: en:User:Zocky, Maciej „Nux” Jaros
- Skrypt: MediaWiki:Gadget-searchbox.js, wersja robocza: Wikipedysta:Nux/SearchBox.dev.js (SearchBox na github).
Ustawienia
[edytuj | edytuj kod]Zapamiętane frazy
[edytuj | edytuj kod]Od wersji 3.1 dostępne są przyciski pamięci:
MR– wywołanie frazy z pamięci.M+– dodaje do pamięci frazy z okienek wyszukiwania.M-– usuwa z pamięci frazy z okienek wyszukiwania (nawet jeśli są to frazy domyślne).MC– czyści pamięć (i przywraca domyślne frazy); przed skasowaniem wyświetla się okienko z listą fraz i zapytaniem o potwierdzenie skasowania.
Możliwe jest zapamiętanie większej liczby fraz klikając w przycisk M+. Wywołuje się je, klikając kolejno przycisk MR.
Od wersji 1.0 dostępne jest zdefiniowanie na stałe domyślnych fraz do wyszukiwania na swoim koncie (teraz raczej niezalecane). Reguły te należy wpisać do własnego skryptu w następującej formie:
mw.hook('userjs.SearchBox.init').add(function (sr) {
sr.mem.s = [''
,'do wyszukania'
,'cośik'
]
sr.mem.r = [''
,'do wstawienia'
,'cosik'
]
});
W przykładzie podane są dwie frazy: do wyszukania i cośik, wstawiane do okienka „znajdź” i dwie: do wstawienia i cosik, wstawiane odpowiednio do okienka „zamień na”. Wywołuje się je, klikając kolejno przycisk MR. Możliwe jest zapamiętanie większej liczby fraz.
Skróty klawiszowe
[edytuj | edytuj kod]Akcje „Szukaj i zamień” oraz „Zmiana wielkości liter” można uruchomić skrótami klawiszowymi, odpowiednio Ctrl+⇧ Shift+F oraz Ctrl+⇧ Shift+U. Można je wyłączyć lub zmienić wpisując poniższe do własnego skryptu:
mw.hook('userjs.SearchBox.init').add(function (sr) {
// Jeśli false → skrót CTRL+SHIFT+F działa tylko, gdy fokus jest w polu edycji (np. #wpTextbox1).
// Jeśli true → skrót działa globalnie (niezależnie od focusu).
sr.extraOptions.searchShortcutGlobal = false;
// Jeśli true → dodaje skrót klawiszowy do uruchamiania wyszukiwania (CTRL+SHIFT+F).
// Jeśli false → skrót nie jest rejestrowany.
sr.extraOptions.searchShortcutAdd = true;
// Jeśli true → dodaje skrót do przełączania wielkość liter (CTRL+SHIFT+U).
// Jeśli false → brak skrótu dla tej funkcji.
sr.extraOptions.caseShortcutAdd = true;
});
Rozszerzenia (hooks)
[edytuj | edytuj kod]Od wersji 2.6 dostępne są hooki, które umożliwiają stworzenie rozszerzeń funkcjonalnych do SearchBox (możliwość tworzenia pluginów przez programistki i programistów).
Dostępne są trzy główne hooki:
// hook executed after creation of the form (1st time form is shown)
// `sr` is the main object.
mw.hook('userjs.SearchBox.create').add(function (sr) {
});
// each time when form is shown
mw.hook('userjs.SearchBox.show').add(function (sr) {
});
// each time when form is shown or hidden
mw.hook('userjs.SearchBox.showHide').add(function (sr, hidding) {
});
Dodatkowo jest też hook init, który może być użyty to zmiany ustawień bądź zmianami przed utworzeniem formularza. Należy pamiętać, żeby unikać zmiany funkcji. Inaczej jedno rozszerzenie zmieni zachowanie i funkcja będzie się zachowywać niezgodnie z oczekiwaniami. W razie potrzeby lepiej poproś o dodanie nowego hook zamiast zmieniać całą funkcje.
Pamiętaj, że hooki zostają wykonane również wstecznie przy dodawaniu. Np. jeśli funkcja nuxsr.init() została już wykonana, to poniższego funkcja obsługi hooka zostanie wykonana od razu. Czyli wpis w JS console pojawi się od razu po wykonaniu poniższego kodu.
mw.hook('userjs.SearchBox.init').add(function (sr) {
console.log('[nuxsr]', 'init', {sr});
});
Uwagi odnośnie do działania skryptu
[edytuj | edytuj kod]Wspierane przeglądarki
[edytuj | edytuj kod]Skrypt był testowany i działa prawidłowo pod następującymi przeglądarkami: Firefox (100+) i Chrome (100+).
Znane problemy
[edytuj | edytuj kod]Program nie jest testowany w starych przeglądarkach (IE, Chrome i Firefox z Windows XP). Powinien jednak mieć podstawową funkcjonalność.
Problemy proszę zgłaszać na mojej stronie dyskusji, albo w kawiarence technicznej (ale z pingiem @Nux).
Instrukcja instalacji
[edytuj | edytuj kod]Skrypt jest dostępny jako tzw. Gadżet i instaluje się go następująco:
- Otwórz stronę „Preferencje”.
- Tam przejdź na zakładkę „Gadżety”.
- Odszukaj sekcję „Edycja stron”.
- Odszukaj opcję: „SearchBox” (link bezpośredni do opcji).
- Zaznacz opcję (checkbox obok).
- Zapisz zmiany w formularzu.
Jeśli chcesz zainstalować wersję roboczą, to zajrzyj do ogólnej instrukcji instalacji narzędzi.
Zobacz też
[edytuj | edytuj kod]- /zrzuty ekranu – podstrona z galerią zrzutów.
- /RegEx – podstrona z przepisem na modyfikacje wikikodu tabel (średnio-zaawansowana).
- Pomoc:Wyrażenia regularne